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>javascript</I>")
re.Pattern="(jscript:)"
strContent=re.Replace(strContent,"<I>jscript:</I>")
re.Pattern="(js:)"
strContent=re.Replace(strContent,"<I>js:</I>")
re.Pattern="(value)"
strContent=re.Replace(strContent,"<I>value</I>")
re.Pattern="(about:)"
strContent=re.Replace(strContent,"<I>about:</I>")
re.Pattern="(file:)"
strContent=re.Replace(strContent,"<I>file:</I>")
re.Pattern="(document.cookie)"
strContent=re.Replace(strContent,"<I>documents.cookie</I>")
re.Pattern="(vbscript:)"
strContent=re.Replace(strContent,"<I>vbscript:</I>")
re.Pattern="(vbs:)"
strContent=re.Replace(strContent,"<I>vbs:</I>")
re.Pattern="(on(mouse|exit|error|click|key))"
strContent=re.Replace(strContent,"<I>on$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>javascript</I>")
re.Pattern="(jscript:)"
strContent=re.Replace(strContent,"<I>jscript:</I>")
re.Pattern="(js:)"
strContent=re.Replace(strContent,"<I>js:</I>")
re.Pattern="(value)"
strContent=re.Replace(strContent,"<I>value</I>")
re.Pattern="(about:)"
strContent=re.Replace(strContent,"<I>about:</I>")
re.Pattern="(file:)"
strContent=re.Replace(strContent,"<I>file:</I>")
re.Pattern="(document.cookie)"
strContent=re.Replace(strContent,"<I>documents.cookie</I>")
re.Pattern="(vbscript:)"
strContent=re.Replace(strContent,"<I>vbscript:</I>")
re.Pattern="(vbs:)"
strContent=re.Replace(strContent,"<I>vbs:</I>")
re.Pattern="(on(mouse|exit|error|click|key))"
strContent=re.Replace(strContent,"<I>on$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," "," ")
'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>javascript</I>")
re.Pattern="(jscript:)"
t=re.Replace(t,"<I>jscript:</I>")
re.Pattern="(js:)"
t=re.Replace(t,"<I>js:</I>")
re.Pattern="(value)"
t=re.Replace(t,"<I>value</I>")
re.Pattern="(about:)"
t=re.Replace(t,"<I>about:</I>")
re.Pattern="(file:)"
t=re.Replace(t,"<I>file:</I>")
re.Pattern="(document.cookie)"
t=re.Replace(t,"<I>documents.cookie</I>")
re.Pattern="(vbscript:)"
t=re.Replace(t,"<I>vbscript:</I>")
re.Pattern="(vbs:)"
t=re.Replace(t,"<I>vbs:</I>")
re.Pattern="(on(mouse|exit|error|click|key))"
t=re.Replace(t,"<I>on$2</I>")
FilterJS=t
set re=nothing
end if
End Function
function dvHTMLEncode(fString)
if not isnull(fString) then
fString = replace(fString, ">", ">")
fString = replace(fString, "<", "<")
fString = replace(fString, "&#", "<I>&#</I>")
fString = Replace(fString, CHR(32), " ")
fString = Replace(fString, CHR(9), " ")
fString = Replace(fString, CHR(34), """)
fString = Replace(fString, CHR(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
%>
本文主题Asp:正则表达式与论坛中UBB的应用