asp学习网: 首页 >> 正则表达式 >> Asp:正则表达式与论坛中UBB的应用

Asp:正则表达式与论坛中UBB的应用

什么是UBB代码?

 UBB代码是HTML的一个变种,是Ultimate Bulletin Board 采用的一种特殊的TAG。你也许已经对他很熟悉了。UBB代码很简单,功能很少,但是由于其Tag语法检查实现非常容易,所以我们的社区决定引入这种代码,以方便网友使用显示图片、链接、加粗字体等常见功能。

常用的UBB代码:

URL超级链接
在你的信息里加入超级链接,只要按下列方式套入就可以了(UBB代码是红字).

[url]http://www.aspxuexi.com[/url]

[url=http://www.aspxuexi.com]asp学习网[/url]

按上例套入,UBB代码会自动对URL产生链接,并保证当用户点击新的窗口时这个链接是打开着的。注意URL的"http://"这一部分是必须的。

电子邮件链接
在你的信息里加入电子邮件的超级链接,只要按照下例套入就可以了(UBB代码是红字)

[email]qwqw@qwqw.com[/email]

[email=qwqw@asas.com]给我写信[/email]
按上例套入,UBB代码会对电子邮件自动产生链接。

加入图象
在你的信息里加入图象,只要按下例套入就可以了(UBB代码是红字).

[img]http://www.aspxuexi.com/asp.gif[/img]

在上例中,UBB代码会自动让图象在你的信息里显示。注意:URL的"http://"这一部分要求在[img]后套入。

加入flash图象
在你的信息里加入图象,只要按下例套入就可以了(UBB代码是红字).

[flash]http://wwww.dfd.cn/sdsd.swf[/flash]

在上例中,UBB代码会自动让图象在你的信息里显示。注意:URL的"http://"这一部分要求在[flash]后套入。

设定文字颜色
只要按下例套入就可以了(UBB代码是红字).

[color=#FF0000]这是要设定颜色的文字[/color]

[color=red]这是要设定颜色的文字[/color]

在上例中,颜色值有两种表达方式:

①用英文white,red,blue,black,green,yellow,purple,grey,olive,navy,aqua,lime,maroom,teal,fuchsia等;

②用#xxxxxx格式,其中的xxxxxx是六位的十六进制数,即用0-9,A-F这十六个字符。如#FF0000表示红色、#00FF00表示绿色、#0000FF表示蓝色、#FFFFFF表示白色、#000000表示黑色。

其他tag

居中: [center]标题[/center]
黑体: [b]粗体[/b]
斜体: [i]斜体[/i]
下划线:[u]下划线[/u]
删除线:[del]删除线[/del]
下标: [sub]下标[/sub]例如:H[sub]2[/sub]O的效果是H2O。
上标: [sup]上标[/sup]例如:Fe[sup]3+[/sup]的效果是Fe3+。


特别注意:
UBB代码对大小写不敏感。所以你可以用大写或小写的UBB代码。


不正确的UBB代码使用:
[email]ted@prime-web.com[email] 在结束时,不要忘了在括号内加入斜杠[/email]

下面要谈到的就是asp开发中UBB功能的实现:

至于其他各式各样的UBB代码的实现方式同上面的类似,我们就以上面UBB代码实现作为例子来讲解“正则表达式”对象的强大功能。

我们主要使用Replace()方法配合相应的模版,就可以方便的实现UBB代码功能了,在这里我们主要用到了两个自己编写的函数,第一个函数ReplaceTest,这个函数实现的功能主要是将“正则表达式”对象进行了封装,提供三个入口参数:

Patrn
这个参数传递的是UBB代码的匹配模版

Str
这个参数传递的是将要以UBB方式处理的字符串,比如文章内容。

ReplStr
这个参数传递的是匹配成的html代码语言。

ReplaceTest函数的出口参数是经过模版匹配替换之后的字符串。

ReplaceTest函数代码如下:

Function ReplaceTest(patrn,str,replStr)

Dim regEx, str1 ' 建立变量。

str1=trim(str)

Set regEx = New RegExp ' 建立正则表达式。

regEx.Pattern = patrn ' 设置模式。

regEx.IgnoreCase = true ' 设置是否区分大小写。

ReplaceTest = regEx.Replace(str1, replStr) ' 作替换。

set regEx=nothing ‘销毁正则表达式对象

End Function

我们要编写的第二个函数是:UBB()函数。这个函数实现的功能就是将一段文本进行UBB功能的转换。这个函数仅仅只有一个入口参数:

Str
这个参数传递要被处理的字符串。

  UBB函数的出口参数是经过UBB代码处理过后的字符串。 

  UBB函数的代码如下:(程序中有详细注释信息)

Function UBB(str)

dim i,temp ‘声明变量

i=1

temp=""

do while instr(i,str,"[/"]>=1 ‘如果没有达到字符串的末尾

if trim(temp)="" then

temp=ReplaceTest("(\[i])(\S+)(\[/i])",str,"<i>$2</i>")  ‘进行UBB代码的模版匹配与替换

else

temp=ReplaceTest("(\[i])(\S+)(\[/i])",temp,"<i>$2</i>")  ‘进行UBB代码的模版匹配与替换

end if

temp=ReplaceTest("(\[b])(\S+)(\[/b])",temp,"<b>$2</b>")  ‘进行UBB代码的模版匹配与替换

temp=ReplaceTest("(\[big])(\S+)(\[/big])",temp,"<big>$2</big>") ‘进行UBB代码的模版匹配与替换

temp=ReplaceTest("(\[strike])(\S+)(\[/strike])",temp,"<strike>$2</strike>")‘进行UBB代码的模版匹配与替换

temp=ReplaceTest("(\[sub])(\S+)(\[/sub])",temp,"<sub>$2</sub>")‘进行UBB代码的模版匹配与替换

temp=ReplaceTest("(\[sup])(\S+)(\[/sup])",temp,"<sup>$2</sup>")

temp=ReplaceTest("(\[pre])(\S+)(\[/pre])",temp,"<pre>$2</pre>")

temp=ReplaceTest("(\[u])(\S+)(\[/u])",temp,"<u>$2</u>")

temp=ReplaceTest("(\[small])(\S+)(\[/small])",temp,"<small>$2</small>")

temp=ReplaceTest("(\[h1])(\S+)(\[/h1])",temp,"<h1>$2</h1>")

temp=ReplaceTest("(\[h2])(\S+)(\[/h2])",temp,"<h2>$2</h2>")

temp=ReplaceTest("(\[h3])(\S+)(\[/h3])",temp,"<h3>$2</h3>")

temp=ReplaceTest("(\[h4])(\S+)(\[/h4])",temp,"<h4>$2</h4>")

temp=ReplaceTest("(\[h5])(\S+)(\[/h5])",temp,"<h5>$2</h5>")

temp=ReplaceTest("(\[h6])(\S+)(\[/h6])",temp,"<h6>$2</h6>")

temp=ReplaceTest("(\[red])(\S+)(\[/red])",temp,"<font color=red>$2</font>")

'这里可以增加新的UBB代码的实现模版

temp=ReplaceTest("(\[email])(\S+)(\[/email])",temp,"<a href=""mailto:$2"" target=_top>$2</a>")

temp=ReplaceTest("(\[img])(\S+)(\[/img])",temp,"<img src=""$2"">")

temp=ReplaceTest("(\[url])(\S+)(\[/url])",temp,"<a href=""$2"" target=_top>$2</a>")

temp=ReplaceTest("(\[#(\S+)])(\S+)(\[/#])",temp,"<font color=$1>$3</font>")‘进行UBB代码的模版匹配与替换

i=i+1

loop

if trim(temp)<>"" then

UBB=temp ‘将经过UBB代码过滤后的字符串传出

else

UBB=str  ‘将经过UBB代码过滤后的字符串传出

end if

end function

在函数UBB的代码中我们可以看到“$1”,“$2”,“$3”等等,这些字符串就是匹配后的字符串的代词,就如同一些“宏”一样,我们可以使用他们方便代替匹配到的字符串,而不必再使用程序去记住匹配字符串的位置。通过这两个简单的函数调用,我们实现了UBB代码的功能,怎么样,很简单吧。

这样,我们只要在显示文章的时候调用UBB函数,对文章内容进行处理之后,再显示到浏览器上面,就实现了论坛的UBB代码功能。并且,你可以方便的在函数UBB添加需要的UBB代码匹配替换模版,从而可以不断的扩充你的UBB代码的功能。

 

最后,给大家一个很好用的ubb套件代码中的一部分,原文在:http://www.chinahtml.com/programming/1/2005/ubb-asp-11320456481681.shtml

<%
function UBB_IMG(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[IMG\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "IMG" & chr(2))
  re.Pattern="\[\/IMG\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/IMG" & chr(2))
   re.Pattern="\x01IMG\x02(.[^\x01]*)\x01\/IMG\x02"
  
    strContent=re.Replace(strContent,"<a onfocus=this.blur() href=""$1"" target=_blank><IMG SRC=""$1"" border=0 alt=按此在新窗口浏览图片 onload=""javascript:if(this.width>screen.width-400)this.width=screen.width-400""></a>")
  
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_IMG=strContent
end function

function UBB_UPLOAD(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[UPLOAD=(gif|jpg|jpeg|bmp|png)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "UPLOAD=$1" & chr(2))
  re.Pattern="\[\/UPLOAD\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/UPLOAD" & chr(2))
   re.Pattern="\x01UPLOAD=(gif|jpg|jpeg|bmp|png)\x02(.[^\x01]*)\x01\/UPLOAD\x02"
 
    strContent= re.Replace(strContent,"<br><IMG SRC=""../../../../images/pic/gift.gif"" border=0>此主题相关图片如下:<br><A HREF=""$2"" TARGET=_blank><IMG SRC=""$2"" border=0 alt=按此在新窗口浏览图片 onload=""javascript:if(this.width>screen.width-400)this.width=screen.width-400""></A>")
 
   re.Pattern="\[UPLOAD=(.[^\[]*)\]"
   strContent=re.replace(strContent, chr(1) & "UPLOAD=$1" & chr(2))
   re.Pattern="\x01UPLOAD=(.[^\x01]*)\x02(.[^\x01]*)\x01\/UPLOAD\x02"
   strContent= re.Replace(strContent,"<br><IMG SRC=""../../../../images/pic/gift.gif"" border=0> <a href=""$2"">点击浏览该文件</a>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 re.Pattern="\[UPLOAD=(.[^\[]*)\](.[^\[]*)\[\/UPLOAD\]"
        strContent= re.Replace(strContent,"<br><IMG SRC=""../../../../images/pic/gift.gif"" border=0> <a href=""$2"">点击浏览该文件</a>")
 set re=Nothing
 UBB_UPLOAD=strContent
end function

function UBB_DIR(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[DIR=*([0-9]*),*([0-9]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "DIR=$1,$2" & chr(2))
  re.Pattern="\[\/DIR\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/DIR" & chr(2))
  
    re.Pattern="\x01DIR=*([0-9]*),*([0-9]*)\x02(.[^\x01]*)\x01\/DIR\x02"
    strContent=re.Replace(strContent,"<object classid=clsid:166B1BCA-3F9C-11CF-8075-444553540000 codebase=http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=7,0,2,0 width=$1 height=$2><param name=src value=$3><embed src=$3 pluginspage=http://www.macromedia.com/shockwave/download/ width=$1 height=$2></embed></object>")
  
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_DIR=strContent
end function

function UBB_QT(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[QT=*([0-9]*),*([0-9]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "QT=$1,$2" & chr(2))
  re.Pattern="\[\/QT\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/QT" & chr(2))
  
    re.Pattern="\x01QT=*([0-9]*),*([0-9]*)\x02(.[^\x01]*)\x01\/QT\x02"
    strContent=re.Replace(strContent,"<embed src=$3 width=$1 height=$2 autoplay=true loop=false controller=true playeveryframe=false cache=false scale=TOFIT bgcolor=#000000 kioskmode=false targetcache=false pluginspage=http://www.apple.com/quicktime/>")
 
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_QT=strContent
end function

function UBB_MP(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[MP=*([0-9]*),*([0-9]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "MP=$1,$2" & chr(2))
  re.Pattern="\[\/MP\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/MP" & chr(2))
   
    re.Pattern="\x01MP=*([0-9]*),*([0-9]*)\x02(.[^\x01]*)\x01\/MP\x02"
    strContent=re.Replace(strContent,"<object align=middle classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 class=OBJECT id=MediaPlayer width=$1 height=$2 ><param name=ShowStatusBar value=-1><param name=Filename value=$3><embed type=application/x-oleobject codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 flename=mp src=$3 width=$1 height=$2></embed></object>")
  
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_MP=strContent
end function

function UBB_RM(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[RM=*([0-9]*),*([0-9]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "RM=$1,$2" & chr(2))
  re.Pattern="\[\/RM\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/RM" & chr(2))
  
    re.Pattern="\x01RM=*([0-9]*),*([0-9]*)\x02(.[^\x01]*)\x01\/RM\x02"
    strContent=re.Replace(strContent,"<OBJECT classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA class=OBJECT id=RAOCX width=$1 height=$2><PARAM NAME=SRC VALUE=$3><PARAM NAME=CONSOLE VALUE=Clip1><PARAM NAME=CONTROLS VALUE=imagewindow><PARAM NAME=AUTOSTART VALUE=true></OBJECT><br><OBJECT classid=CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA height=32 id=video2 width=$1><PARAM NAME=SRC VALUE=$3><PARAM NAME=AUTOSTART VALUE=-1><PARAM NAME=CONTROLS VALUE=controlpanel><PARAM NAME=CONSOLE VALUE=Clip1></OBJECT>")
  
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_RM=strContent
end function

function UBB_FLASH(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[FLASH\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "FLASH" & chr(2))
  re.Pattern="\[\/FLASH\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/FLASH" & chr(2))
  
    re.Pattern="\x01FLASH\x02(.[^\x01]*)\x01\/FLASH\x02"
    strContent=re.Replace(strContent,"<a href=""$1"" TARGET=_blank><IMG SRC=../../../../images/pic/music.gif border=0 alt=点击开新窗口欣赏该FLASH动画! height=16 width=16>[全屏欣赏]</a><br><OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=500 height=400><PARAM NAME=movie VALUE=""$1""><PARAM NAME=quality VALUE=high><embed src=""$1"" quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width=500 height=400>$1</embed></OBJECT>")
  
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 re.Pattern="\[FLASH=*([0-9]*),*([0-9]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "FLASH=$1,$2" & chr(2))
  re.Pattern="\[\/FLASH\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/FLASH" & chr(2))
 
    re.Pattern="\x01FLASH=*([0-9]*),*([0-9]*)\x02(.[^\x01]*)\x01\/FLASH\x02"
    strContent=re.Replace(strContent,"<a href=""$3"" TARGET=_blank><IMG SRC=../../../../images/pic/music.gif border=0 alt=点击开新窗口欣赏该FLASH动画! height=16 width=16>[全屏欣赏]</a><br><OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=$1 height=$2><PARAM NAME=movie VALUE=""$3""><PARAM NAME=quality VALUE=high><embed src=""$3"" quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width=$1 height=$2>$3</embed></OBJECT>")
  
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_FLASH=strContent
end function

function UBB_SOUND(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[SOUND\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "SOUND" & chr(2))
  re.Pattern="\[\/SOUND\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/SOUND" & chr(2))
  
    re.Pattern="\x01SOUND\x02(.[^\x01]*)\x01\/SOUND\x02"
    strContent=re.Replace(strContent,"<a href=""$1"" target=_blank><IMG SRC=../../../../images/pic/music.gif border=0 alt='背景音乐'></a><bgsound src=""$1"" loop=""-1"">")
  
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_SOUND=strContent
end function

function UBB_URL(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[URL\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "URL" & chr(2))
  re.Pattern="\[\/URL\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/URL" & chr(2))
   re.Pattern="\x01URL\x02(.[^\x01]*)\x01\/URL\x02"
   strContent=re.Replace(strContent,"<A HREF=""$1"" TARGET=_blank>$1</A>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 re.Pattern="\[URL=(.[^\[]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "URL=$1" & chr(2))
  re.Pattern="\[\/URL\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/URL" & chr(2))
   re.Pattern="\x01URL=(.[^\x01]*)\x02(.[^\x01]*)\x01\/URL\x02"
   strContent=re.Replace(strContent,"<A HREF=""$1"" TARGET=_blank>$2</A>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_URL=strContent
end function

function UBB_EMAIL(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[EMAIL\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "EMAIL" & chr(2))
  re.Pattern="\[\/EMAIL\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/EMAIL" & chr(2))
   re.Pattern="\x01EMAIL\x02(\S+\@.[^\x01]*)\x01\/EMAIL\x02"
   strContent=re.Replace(strContent,"<img align=absmiddle src=../../../../images/pic/coffee.gif><A HREF=""mailto:$1"">$1</A>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 re.Pattern="\[EMAIL=(\S+\@.[^\[]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "EMAIL=$1" & chr(2))
  re.Pattern="\[\/EMAIL\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/EMAIL" & chr(2))
   re.Pattern="\x01EMAIL=(\S+\@.[^\x01]*)\x02(.[^\x01]*)\x01\/EMAIL\x02"
   strContent=re.Replace(strContent,"<img align=absmiddle src=../../../../images/pic/clock.gif><A HREF=""mailto:$1"" TARGET=_blank>$2</A>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_EMAIL=strContent
end function

function UBB_HTML(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[HTML\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "HTML" & chr(2))
  re.Pattern="\[\/HTML\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/HTML" & chr(2))
   re.Pattern="\x01HTML\x02(.[^\x01]*)\x01\/HTML\x02"
   strContent=re.Replace(strContent,"<table width='100%' border='0' cellspacing='0' cellpadding='6' class='"&abgcolor&"'><td><b>以下内容为程序代码:</b><br>$1</td></table>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_HTML=strContent
end function

function UBB_CODE(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[CODE\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "CODE" & chr(2))
  re.Pattern="\[\/CODE\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/CODE" & chr(2))
   re.Pattern="\x01CODE\x02(.[^\x01]*)\x01\/CODE\x02"
   strContent=re.Replace(strContent,"<table width='95%' border='0' cellspacing='0' cellpadding='6' ><td><FIELDSET><LEGEND align=left><b><font  face='Verdana, Arial, Helvetica, sans-serif'>C2club代码:</font></b></LEGEND><br><font color=#CC0000>$1</font><br><br></FIELDSET></td></table>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_CODE=strContent
end function

function UBB_COLOR(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[COLOR=(.[^\[]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "COLOR=$1" & chr(2))
  re.Pattern="\[\/COLOR\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/COLOR" & chr(2))
   re.Pattern="\x01COLOR=(.[^\x01]*)\x02(.[^\x01]*)\x01\/COLOR\x02"
   strContent=re.Replace(strContent,"<font color=$1>$2</font>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_COLOR=strContent
end function

function UBB_FACE(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[FACE=(.[^\[]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "FACE=$1" & chr(2))
  re.Pattern="\[\/FACE\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/FACE" & chr(2))
   re.Pattern="\x01FACE=(.[^\x01]*)\x02(.[^\x01]*)\x01\/FACE\x02"
   strContent=re.Replace(strContent,"<font face=$1>$2</font>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_FACE=strContent
end function

function UBB_ALIGN(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[ALIGN=(center|left|right)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "ALIGN=$1" & chr(2))
  re.Pattern="\[\/ALIGN\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/ALIGN" & chr(2))
   re.Pattern="\x01ALIGN=(center|left|right)\x02(.[^\x01]*)\x01\/ALIGN\x02"
   strContent=re.Replace(strContent,"<div align=$1>$2</div>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_ALIGN=strContent
end function

function UBB_FLY(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[FLY\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "FLY" & chr(2))
  re.Pattern="\[\/FLY\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/FLY" & chr(2))
   re.Pattern="\x01FLY\x02(.[^\x01]*)\x01\/FLY\x02"
   strContent=re.Replace(strContent,"<marquee width=90% behavior=alternate scrollamount=3>$1</marquee>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_FLY=strContent
end function

function UBB_MOVE(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[MOVE\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "MOVE" & chr(2))
  re.Pattern="\[\/MOVE\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/MOVE" & chr(2))
   re.Pattern="\x01MOVE\x02(.[^\x01]*)\x01\/MOVE\x02"
   strContent=re.Replace(strContent,"<MARQUEE scrollamount=3>$1</marquee>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_MOVE=strContent
end function

function UBB_CENTER(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[CENTER\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "CENTER" & chr(2))
  re.Pattern="\[\/CENTER\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/CENTER" & chr(2))
   re.Pattern="\x01CENTER\x02(.[^\x01]*)\x01\/CENTER\x02"
   strContent=re.Replace(strContent,"<div align=center>$1</div>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_CENTER=strContent
end function

function UBB_SHADOW(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "SHADOW=$1,$2,$3" & chr(2))
  re.Pattern="\[\/SHADOW\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/SHADOW" & chr(2))
   re.Pattern="\x01SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\x02(.[^\x01]*)\x01\/SHADOW\x02"
   strContent=re.Replace(strContent,"<table width=$1><tr><td style=""filter:shadow(color=$2, strength=$3)"">$4</td></tr></table>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_SHADOW=strContent
end function

function UBB_GLOW(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[GLOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "GLOW=$1,$2,$3" & chr(2))
  re.Pattern="\[\/GLOW\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/GLOW" & chr(2))
   re.Pattern="\x01GLOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\x02(.[^\x01]*)\x01\/GLOW\x02"
   strContent=re.Replace(strContent,"<table width=$1><tr><td style=""filter:glow(color=$2, strength=$3)"">$4</td></tr></table>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_GLOW=strContent
end function

function UBB_I(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[I\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "I" & chr(2))
  re.Pattern="\[\/I\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/I" & chr(2))
   re.Pattern="\x01I\x02(.[^\x01]*)\x01\/I\x02"
   strContent=re.Replace(strContent,"<i>$1</i>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_I=strContent
end function

function UBB_U(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[U\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "U" & chr(2))
  re.Pattern="\[\/U\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/U" & chr(2))
   re.Pattern="\x01U\x02(.[^\x01]*)\x01\/U\x02"
   strContent=re.Replace(strContent,"<u>$1</u>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_U=strContent
end function

function UBB_B(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[B\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "B" & chr(2))
  re.Pattern="\[\/B\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/B" & chr(2))
   re.Pattern="\x01B\x02(.[^\x01]*)\x01\/B\x02"
   strContent=re.Replace(strContent,"<b>$1</b>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_B=strContent
end function

function UBB_SIZE(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[SIZE=([1-7])\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "SIZE=$1" & chr(2))
  re.Pattern="\[\/SIZE\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/SIZE" & chr(2))
   re.Pattern="\x01SIZE=([1-7])\x02(.[^\x01]*)\x01\/SIZE\x02"
   strContent=re.Replace(strContent,"<font size=$1>$2</font>")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_SIZE=strContent
end function

function UBB_QUOTE(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[QUOTE\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "QUOTE" & chr(2))
  re.Pattern="\[\/QUOTE\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/QUOTE" & chr(2))
   do
    re.Pattern="\x01QUOTE\x02(.[^\x01]*)\x01\/QUOTE\x02"
    strContent=re.Replace(strContent,"<table style=""width:100%"" cellpadding=5 cellspacing=1 class=tableborder1><TR><TD width=""100%"">$1</td></tr></table><br>")
    Test=re.Test(strContent)
   loop while(Test)
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 UBB_QUOTE=strContent
end function

 

 

 


function REUBB_COLOR(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[COLOR=(.[^\[]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "COLOR=$1" & chr(2))
  re.Pattern="\[\/COLOR\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/COLOR" & chr(2))
   re.Pattern="\x01COLOR=(.[^\x01]*)\x02(.[^\x01]*)\x01\/COLOR\x02"
   strContent=re.Replace(strContent,"$2")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 REUBB_COLOR=strContent
end function

function REUBB_FACE(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[FACE=(.[^\[]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "FACE=$1" & chr(2))
  re.Pattern="\[\/FACE\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/FACE" & chr(2))
   re.Pattern="\x01FACE=(.[^\x01]*)\x02(.[^\x01]*)\x01\/FACE\x02"
   strContent=re.Replace(strContent,"$2")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 REUBB_FACE=strContent
end function

function REUBB_ALIGN(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[ALIGN=(center|left|right)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "ALIGN=$1" & chr(2))
  re.Pattern="\[\/ALIGN\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/ALIGN" & chr(2))
   re.Pattern="\x01ALIGN=(center|left|right)\x02(.[^\x01]*)\x01\/ALIGN\x02"
   strContent=re.Replace(strContent,"$2")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 REUBB_ALIGN=strContent
end function

function REUBB_FLY(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[FLY\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "FLY" & chr(2))
  re.Pattern="\[\/FLY\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/FLY" & chr(2))
   re.Pattern="\x01FLY\x02(.[^\x01]*)\x01\/FLY\x02"
   strContent=re.Replace(strContent,"$1")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 REUBB_FLY=strContent
end function

function REUBB_MOVE(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[MOVE\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "MOVE" & chr(2))
  re.Pattern="\[\/MOVE\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/MOVE" & chr(2))
   re.Pattern="\x01MOVE\x02(.[^\x01]*)\x01\/MOVE\x02"
   strContent=re.Replace(strContent,"$1")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 REUBB_MOVE=strContent
end function

function REUBB_CENTER(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[CENTER\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "CENTER" & chr(2))
  re.Pattern="\[\/CENTER\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/CENTER" & chr(2))
   re.Pattern="\x01CENTER\x02(.[^\x01]*)\x01\/CENTER\x02"
   strContent=re.Replace(strContent,"$1")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 REUBB_CENTER=strContent
end function

function REUBB_SHADOW(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "SHADOW=$1,$2,$3" & chr(2))
  re.Pattern="\[\/SHADOW\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/SHADOW" & chr(2))
   re.Pattern="\x01SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\x02(.[^\x01]*)\x01\/SHADOW\x02"
   strContent=re.Replace(strContent,"$4")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 REUBB_SHADOW=strContent
end function

function REUBB_GLOW(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[GLOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "GLOW=$1,$2,$3" & chr(2))
  re.Pattern="\[\/GLOW\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/GLOW" & chr(2))
   re.Pattern="\x01GLOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\x02(.[^\x01]*)\x01\/GLOW\x02"
   strContent=re.Replace(strContent,"$4")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 REUBB_GLOW=strContent
end function

function REUBB_I(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[I\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "I" & chr(2))
  re.Pattern="\[\/I\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/I" & chr(2))
   re.Pattern="\x01I\x02(.[^\x01]*)\x01\/I\x02"
   strContent=re.Replace(strContent,"$1")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 REUBB_I=strContent
end function

function REUBB_U(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[U\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "U" & chr(2))
  re.Pattern="\[\/U\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/U" & chr(2))
   re.Pattern="\x01U\x02(.[^\x01]*)\x01\/U\x02"
   strContent=re.Replace(strContent,"$1")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 REUBB_U=strContent
end function

function REUBB_B(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[B\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "B" & chr(2))
  re.Pattern="\[\/B\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/B" & chr(2))
   re.Pattern="\x01B\x02(.[^\x01]*)\x01\/B\x02"
   strContent=re.Replace(strContent,"$1")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 REUBB_B=strContent
end function

function REUBB_SIZE(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[SIZE=([1-7])\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "SIZE=$1" & chr(2))
  re.Pattern="\[\/SIZE\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/SIZE" & chr(2))
   re.Pattern="\x01SIZE=([1-7])\x02(.[^\x01]*)\x01\/SIZE\x02"
   strContent=re.Replace(strContent,"$2")
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 REUBB_SIZE=strContent
end function

function REUBB_QUOTE(strText)
 dim strContent
 dim re,Test
 
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True
 strContent=strText
 re.Pattern="\[QUOTE\]"
 Test=re.Test(strContent)
 if Test then
  strContent=re.replace(strContent, chr(1) & "QUOTE" & chr(2))
  re.Pattern="\[\/QUOTE\]"
  Test=re.Test(strContent)
  if Test then
   strContent=re.replace(strContent, chr(1) & "/QUOTE" & chr(2))
   do
    re.Pattern="\x01QUOTE\x02(.[^\x01]*)\x01\/QUOTE\x02"
    strContent=re.Replace(strContent,"")
    Test=re.Test(strContent)
   loop while(Test)
   re.Pattern="\x02"
   strContent=re.replace(strContent, "]")
  end if
  re.Pattern="\x01"
  strContent=re.replace(strContent, "[")
 end if
 set re=Nothing
 REUBB_QUOTE=strContent
end function

 


'入口参数:strContent内容
function DvBCode(strContent)
'HTML Code
strContent = dvHTMLEncode(strContent)
'UbbCode

dim re
dim po,ii
Set re=new RegExp
re.IgnoreCase =true
re.Global=True

re.Pattern="(javascript)"
strContent=re.Replace(strContent,"<I>&#106avascript</I>")
re.Pattern="(jscript:)"
strContent=re.Replace(strContent,"<I>&#106script:</I>")
re.Pattern="(js:)"
strContent=re.Replace(strContent,"<I>&#106s:</I>")
re.Pattern="(value)"
strContent=re.Replace(strContent,"<I>&#118alue</I>")
re.Pattern="(about:)"
strContent=re.Replace(strContent,"<I>about&#58</I>")
re.Pattern="(file:)"
strContent=re.Replace(strContent,"<I>file&#58</I>")
re.Pattern="(document.cookie)"
strContent=re.Replace(strContent,"<I>documents&#46cookie</I>")
re.Pattern="(vbscript:)"
strContent=re.Replace(strContent,"<I>&#118bscript:</I>")
re.Pattern="(vbs:)"
strContent=re.Replace(strContent,"<I>&#118bs:</I>")
re.Pattern="(on(mouse|exit|error|click|key))"
strContent=re.Replace(strContent,"<I>&#111n$2</I>")


'IMG Code
strContent=UBB_IMG(strContent)

'UPLOAD Code
strContent=UBB_UPLOAD(strContent)

'DIR Code
strContent=UBB_DIR(strContent)

'QT Code
strContent=UBB_QT(strContent)

'MP Code
strContent=UBB_MP(strContent)

'RM Code
strContent=UBB_RM(strContent)

'FLASH Code
strContent=UBB_FLASH(strContent)

'SOUND Code
strContent=UBB_SOUND(strContent)

'URL Code
strContent=UBB_URL(strContent)

'EMAIL Code
strContent=UBB_EMAIL(strContent)

'HTML Code
strContent=UBB_HTML(strContent)

'CODE Code
strContent=UBB_CODE(strContent)

'COLOR Code
strContent=UBB_COLOR(strContent)

'FACE Code
strContent=UBB_FACE(strContent)

'ALIGN Code
strContent=UBB_ALIGN(strContent)

'FLY Code
strContent=UBB_FLY(strContent)

'MOVE Code
strContent=UBB_MOVE(strContent)

'CENTER Code
strContent=UBB_CENTER(strContent)

'SHADOW Code
strContent=UBB_SHADOW(strContent)

'GLOW Code
strContent=UBB_GLOW(strContent)

'I Code
strContent=UBB_I(strContent)

'U Code
strContent=UBB_U(strContent)

'B Code
strContent=UBB_B(strContent)

'SIZE Code
strContent=UBB_SIZE(strContent)

'QUOTE Code
strContent=UBB_QUOTE(strContent)

 

'自动识别网址
re.Pattern = "^((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+)"
strContent = re.Replace(strContent,"<font color=""#CC0000""><strong> ◆ </strong></font><a target=_blank href=$1>$1</a>")
re.Pattern = "((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+)$"
strContent = re.Replace(strContent,"<font color=""#CC0000""><strong> ◆ </strong></font><a target=_blank href=$1>$1</a>")
re.Pattern = "([^>=""])((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+)"
strContent = re.Replace(strContent,"$1<font color=""#CC0000""><strong> ◆ </strong></font><a target=_blank href=$2>$2</a>")

'自动识别www等开头的网址
re.Pattern = "([^(http://|http:\\)])((www|cn)[.](\w)+[.]{1,}(net|com|cn|org|cc)(((\/[\~]*|\\[\~]*)(\w)+)|[.](\w)+)*(((([?](\w)+){1}[=]*))*((\w)+){1}([\&](\w)+[\=](\w)+)*)*)"
strContent = re.Replace(strContent,"<font color=""#CC0000""><strong> ◆ </strong></font><a target=_blank href=http://$2>$2</a>")

'自动识别Email地址,如打开本功能在浏览内容很多的帖子会引起服务器停顿
're.Pattern = "([^(=)])((\w)+[@]{1}((\w)+[.]){1,3}(\w)+)"
'strContent = re.Replace(strContent,"<font color=""#CC0000""><strong> ◆ </strong></font><a target=_blank href=""mailto:$2"">$2</a>")

 

set re=Nothing
DvBcode=strContent
end function

function DvSignCode(strContent)

 strContent = dvHTMLEncode(strContent)

 

 DvSignCode=strContent


dim re,ii,po
dim reContent,Test
Set re=new RegExp
re.IgnoreCase =true
re.Global=True

re.Pattern="(javascript)"
strContent=re.Replace(strContent,"<I>&#106avascript</I>")
re.Pattern="(jscript:)"
strContent=re.Replace(strContent,"<I>&#106script:</I>")
re.Pattern="(js:)"
strContent=re.Replace(strContent,"<I>&#106s:</I>")
re.Pattern="(value)"
strContent=re.Replace(strContent,"<I>&#118alue</I>")
re.Pattern="(about:)"
strContent=re.Replace(strContent,"<I>about&#58</I>")
re.Pattern="(file:)"
strContent=re.Replace(strContent,"<I>file&#58</I>")
re.Pattern="(document.cookie)"
strContent=re.Replace(strContent,"<I>documents&#46cookie</I>")
re.Pattern="(vbscript:)"
strContent=re.Replace(strContent,"<I>&#118bscript:</I>")
re.Pattern="(vbs:)"
strContent=re.Replace(strContent,"<I>&#118bs:</I>")
re.Pattern="(on(mouse|exit|error|click|key))"
strContent=re.Replace(strContent,"<I>&#111n$2</I>")

'IMG Code
strContent=UBB_IMG(strContent)

'FLASH Code
strContent=UBB_FLASH(strContent)

'URL Code
strContent=UBB_URL(strContent)

'EMAIL Code
strContent=UBB_EMAIL(strContent)

'COLOR Code
strContent=UBB_COLOR(strContent)

'FACE Code
strContent=UBB_FACE(strContent)

'ALIGN Code
strContent=UBB_ALIGN(strContent)

'FLY Code
strContent=UBB_FLY(strContent)

'MOVE Code
strContent=UBB_MOVE(strContent)

'CENTER Code
strContent=UBB_CENTER(strContent)

'SHADOW Code
strContent=UBB_SHADOW(strContent)

'GLOW Code
strContent=UBB_GLOW(strContent)

'I Code
strContent=UBB_I(strContent)

'U Code
strContent=UBB_U(strContent)

'B Code
strContent=UBB_B(strContent)

'SIZE Code
strContent=UBB_SIZE(strContent)

'自动识别网址
re.Pattern = "^((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+)"
strContent = re.Replace(strContent,"<font color=""#CC0000""><strong> ◆ </strong></font><a target=_blank href=$1>$1</a>")
re.Pattern = "((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+)$"
strContent = re.Replace(strContent,"<font color=""#CC0000""><strong> ◆ </strong></font><a target=_blank href=$1>$1</a>")
re.Pattern = "([^>=""])((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+)"
strContent = re.Replace(strContent,"$1<font color=""#CC0000""><strong> ◆ </strong></font><a target=_blank href=$2>$2</a>")

'自动识别www等开头的网址
re.Pattern = "([^(http://|http:\\)])((www|cn)[.](\w)+[.]{1,}(net|com|cn|org|cc)(((\/[\~]*|\\[\~]*)(\w)+)|[.](\w)+)*(((([?](\w)+){1}[=]*))*((\w)+){1}([\&](\w)+[\=](\w)+)*)*)"
strContent = re.Replace(strContent,"<font color=""#CC0000""><strong> ◆ </strong></font><a target=_blank href=http://$2>$2</a>")

'自动识别Email地址
're.Pattern = "([^(=)])((\w)+[@]{1}((\w)+[.]){1,3}(\w)+)"
'strContent = re.Replace(strContent,"<font color=""#CC0000""><strong> ◆ </strong></font><a target=_blank href=""mailto:$2"">$2</a>")


set re=Nothing
DvSignCode=strContent
end function

function reUBBCode(CurContent)
dim strContent

strContent=CurContent
strContent = dvHTMLEncode(strContent)
dim re
Set re=new RegExp
re.IgnoreCase =true
re.Global=True
strContent=replace(strContent,"&nbsp;"," ")

'COLOR Code
strContent=REUBB_COLOR(strContent)

'FACE Code
strContent=REUBB_FACE(strContent)

'ALIGN Code
strContent=REUBB_ALIGN(strContent)

'FLY Code
strContent=REUBB_FLY(strContent)

'MOVE Code
strContent=REUBB_MOVE(strContent)

'CENTER Code
strContent=REUBB_CENTER(strContent)

'SHADOW Code
strContent=REUBB_SHADOW(strContent)

'GLOW Code
strContent=REUBB_GLOW(strContent)

'I Code
strContent=REUBB_I(strContent)

'U Code
strContent=REUBB_U(strContent)

'B Code
strContent=REUBB_B(strContent)

'SIZE Code
strContent=REUBB_SIZE(strContent)

'QUOTE Code
strContent=REUBB_QUOTE(strContent)

 

set re=Nothing
reUBBCode=strContent
end function

Function FilterJS(v)
if not isnull(v) then
dim t
dim re
dim reContent
Set re=new RegExp
re.IgnoreCase =true
re.Global=True
re.Pattern="(&#)"
t=re.Replace(v,"<I>&#</I>")
re.Pattern="(javascript)"
t=re.Replace(t,"<I>&#106avascript</I>")
re.Pattern="(jscript:)"
t=re.Replace(t,"<I>&#106script:</I>")
re.Pattern="(js:)"
t=re.Replace(t,"<I>&#106s:</I>")
re.Pattern="(value)"
t=re.Replace(t,"<I>&#118alue</I>")
re.Pattern="(about:)"
t=re.Replace(t,"<I>about&#58</I>")
re.Pattern="(file:)"
t=re.Replace(t,"<I>file&#58</I>")
re.Pattern="(document.cookie)"
t=re.Replace(t,"<I>documents&#46cookie</I>")
re.Pattern="(vbscript:)"
t=re.Replace(t,"<I>&#118bscript:</I>")
re.Pattern="(vbs:)"
t=re.Replace(t,"<I>&#118bs:</I>")
re.Pattern="(on(mouse|exit|error|click|key))"
t=re.Replace(t,"<I>&#111n$2</I>")
FilterJS=t
set re=nothing
end if
End Function

function dvHTMLEncode(fString)
if not isnull(fString) then
    fString = replace(fString, ">", "&gt;")
    fString = replace(fString, "<", "&lt;")
    fString = replace(fString, "&#", "<I>&#</I>")
   
    fString = Replace(fString, CHR(32), "&nbsp;")
    fString = Replace(fString, CHR(9), "&nbsp;")
    fString = Replace(fString, CHR(34), "&quot;")
    fString = Replace(fString, CHR(39), "&#39;")
    fString = Replace(fString, CHR(13), "")
    fString = Replace(fString, CHR(10) & CHR(10), "</P><P> ")
    fString = Replace(fString, CHR(10), "<BR> ")

    dvHTMLEncode = fString
end if
end function
%>




from:asp学习网/title:Asp:正则表达式与论坛中UBB的应用/ time:2007-1-8 21:10:30

本文主题Asp:正则表达式与论坛中UBB的应用

asp教程 ©2006-2007 aspxuexi.com | 关于站点 | 版权隐私 | 站内搜索
复制或者翻版 请于夜间进行