【 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