当前位置: 首页 > 图文教程 > 网络编程 > ASP > ubb代码的简单实现

ASP
编写通用的asp防注入程序
vbs(asp)下的Function 语句
ASP中类Class相关内容的整理资料
字符批量替换程序asp服务器版
旁注-网站小助手旭方修改免杀asp版
用正则表达式写的HTML分离函数
asp中"无限流"分页程序代码
asp的一个日期格式化函数
asp中创建多级目录的两段代码
asp中去除内容HTML标签的三个function函数
chr(9)、chr(10)、chr(13)、chr(32)、chr(34)讲解
方便的大家admin及admin888 经过 md5加密后16位和32位代码
可用的ASP无重复数字随机函数, 数组实现, 并应用于随机显示记录集
asp动态级联菜单代码
ASP中经常使用的SQL语句与教程说明
实例分析之用ASP编程实现网络内容快速查找的代码
服务端 VBScript 与 JScript 几个相同特性的写法与示例
ASP 环境下 VBS 事件应用 示例代码
asp 之上传漏洞终结篇
asp中一段防SQL注入的通用脚本

ASP 中的 ubb代码的简单实现


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 205 ::
收藏到网摘: n/a

      
  
  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