ubb代码的简单实现

2016-01-29 19:29 3 1 收藏

ubb代码的简单实现,ubb代码的简单实现

【 tulaoshi.com - ASP 】

      
  
  UBB的实现原理无外乎字符串的查找和替换。因此Microosft Script Engine 5.0版本的RegExp(正则表达式对象)是个不错的选择,但我想由于ISP的关系,我现在这个网站(信诺立)就还不支持Microsoft Script Engine 5.0。所以下面这个子程序可能更适合大家一些。
  □Convert-实现ubb标记的查找和替换,当前实现了b/url/url1(在一个新窗口中打开链接)/#/hr等多个标记,大家可以自己增加其他标记。
  □调用方法
  if convert(text,"url")=false then
   'url标记错误处理
  end if
  □convert函数代码
  Function Convert(ByRef intext, UBB)
   '变量定义
   Dim intStart
   Dim intStartPostion
   Dim intEndPostion
   Dim strStartUBB
   Dim strEndUBB
   Dim intStartUBBLen
   Dim intEndUBBLen
   Dim intStrLen
   intStrLen = Len(intext)
   Dim strContent
   Dim strFinish
   '彩色标记
   Dim strColor
   '#号ubb开始标记的结束]位置
   Dim intJHEndPostion
   intStart = 1
   If UBB = "#" Then
   strStartUBB = "[" & "#"
   Else
   strStartUBB = "[" & UBB & "]"
   End If
   If UBB = "hr" Then
   intStartPostion = InStr(intStart, intext, strStartUBB, 1)
   do until intStartPostion=0
   intext = Replace(intext, strStartUBB, "<hr size=1>", 1, -1, 1)
   intStart=intStartPostion+len(strStartUBB)
   intStartPostion = InStr(intStart, intext,strStartUBB, 1)
  
   Loop
   convert=true
   exit function
   End If
  
   strEndUBB = "[/" & UBB & "]"
   intStartUBBLen = Len(strStartUBB)
   intEndUBBLen = Len(strEndUBB)
  
   intStartPostion = InStr(intStart, intext, strStartUBB, 1)
   Do Until intStartPostion = 0
   '找匹配UBB
   intEndPostion = InStr(intStart, intext, strEndUBB, 1)
   If intEndPostion = 0 Then
   Convert = False
   Exit Function
   Else
   '取中间字符串
   If UBB = "#" Then
   '#号特殊处理
   intJHEndPostion = InStr(intStartPostion, intext, "]")
   If intJHEndPostion = 0 Then
   Convert = False
   Exit Function
   End If
   strColor = Mid(intext, intStartPostion + intStartUBBLen, intJHEndPostion - intStartPostion - intStartUBBLen)
   strContent = Mid(intext, intStartPostion + intStartUBBLen + Len(strColor) + 1, intEndPostion - intStartPostion - intStartUBBLen - Len(strColor) - 1)
   Else
   strContent = Mid(intext, intStartPostion + intStartUBBLen, (intEndPostion - intStartPostion - intStartUBBLen))
   End If
   'UBB处理
   Select Case Ucase(UBB)
   '黑体
   Case "B"
   strFinish = "<b>" & strContent & "</b>"
   Case "URL"
   strFinish = "<a href=" & strContent & ">" & strContent & "</a>"
   '你可以增加其他标记
   Case "URL1"
   '在另一个窗口打开
   strFinish = "<a

来源:http://www.tulaoshi.com/n/20160129/1509502.html

延伸阅读
标签: Web开发
% Function HTMLEncode(ByVal strValue)  '忽略错误  On Error Resume Next  '定义变量  Dim strNewValue  If strValue  "" Then   strNewValue = Replace(strValue,"","")   strNewValue = Replace(strNewValue,"","") &...
标签: ASP
  前几日我曾经阅读到一篇技术文章讲述如何使用VBScript中的正则表达式对象来实现论坛里面的UBB功能。VBScript提供的正则表达式对象功能非常强大,但是只有5。5以上的脚本引擎才可以很好的支持正则表达式对象,为了获得版本是 5。5的脚本引擎,你需要单独安装这个脚本引擎,或者安装IE5.5,也就是说对服务器的要求比较苛刻,那就没有其他...
标签: PHP
 【PHPChina讯】 javascript :tagshow(event, 'HTML');" href="javascript:;" target=_self> HTML 部分: <html <head <scrīpt language="javascrīpt" function postRequest(strURL){ var xmlHttp; if(window.XMLHttpRequest){ // For Mozilla, Safari, ... var xmlHttp = new XMLHttpRequest(); } els...
标签: Web开发
目前IECN论坛的UBB自动插入时,总是将插入的内容加到了文章末尾,使用起来很不方便。刚刚对它进行了一下改进。 改进的代码参考river以前贴过的JS,在此对river深表感谢^^ 改进后: 1.可在“ 当前光标处 ”插入相应的UBB代码 2.可在“ 当前选中的内容 ”首尾分别插入相应的UBB代码 3.通过浏览器:IE 5.0+, FireFox 1.06+, Opera8.5+ 相关JS代...
标签: PHP
       <?php   /*   如有转载,请注明作者      作者: 何志强   文件: ubb.php   备注: 说是改进,其实核心函数parse()已经完全重写了,而且思路也是不一样的。   不过仍是受何志强的例子的启发,而且测试的例子还有URLCHECK等...

经验教程

533

收藏

93
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部