主题:[支持原创]ASP正则表达式简单应用:UBB代码
具体效果请看示例:[url=http://www.ahinfo.net/gege/ubb.asp]http://www.ahinfo.net/gege/ubb.asp[/url]
<%@ language="VBScript"%>
<%
Function UBBDecode(str)
Dim oReg
Dim strTmp
Set oReg=New RegExp
strTmp=str
oReg.Global=True
oReg.IgnoreCase=True
'下划线
oReg.Pattern="\[U\]"
strTmp=oReg.Replace(strTmp,"<U>")
oReg.Pattern="\[\/U\]"
strTmp=oReg.Replace(strTmp,"</U>")
'粗体
oReg.Pattern="\[B\]"
strTmp=oReg.Replace(strTmp,"<B>")
oReg.Pattern="\[\/B\]"
strTmp=oReg.Replace(strTmp,"</B>")
'斜体
oReg.Pattern="\[I\]"
strTmp=oReg.Replace(strTmp,"<I>")
oReg.Pattern="\[\/I\]"
strTmp=oReg.Replace(strTmp,"</I>")
'删除线
oReg.Pattern="\[S\]"
strTmp=oReg.Replace(strTmp,"<STRIKE>")
oReg.Pattern="\[\/S\]"
strTmp=oReg.Replace(strTmp,"</STRIKE>")
'上标
oReg.Pattern="\[SUP\]"
strTmp=oReg.Replace(strTmp,"<SUP>")
oReg.Pattern="\[\/SUP\]"
strTmp=oReg.Replace(strTmp,"</SUP>")
'上标
oReg.Pattern="\[SUB\]"
strTmp=oReg.Replace(strTmp,"<SUB>")
oReg.Pattern="\[\/SUB\]"
strTmp=oReg.Replace(strTmp,"</SUB>")
'向中看齐
oReg.Pattern="\[C\]"
strTmp=oReg.Replace(strTmp,"<CENTER>")
oReg.Pattern="\[\/C\]"
strTmp=oReg.Replace(strTmp,"</CENTER>")
'超链接
oReg.Pattern="\[URL\=([a-zA-Z0-9\-\_\/\:\.\?\&\%\+\=]+)\](.+)\[\/URL\]"
strTmp=oReg.Replace(strTmp,"<A HREF=""$1"" TARGET=""_BLANK"">$2</A>")
'邮件超链接
oReg.Pattern="\[MAIL\=([a-zA-Z0-9\-\_\.\?\@]+)\](.+)\[\/MAIL\]"
strTmp=oReg.Replace(strTmp,"<A HREF=""mailto:$1"">$2</A>")
'图片
oReg.Pattern="\[IMG\]([a-zA-Z0-9\-\_\/\:\.\?\&\%\+\=]+)\[\/IMG\]"
strTmp=oReg.Replace(strTmp,"<IMG SRC=""$1"" BORDER=""0"">")
'飞行字
oReg.Pattern="\[FLY\]"
strTmp=oReg.Replace(strTmp,"<MARQUEE>")
oReg.Pattern="\[\/FLY\]"
strTmp=oReg.Replace(strTmp,"</MARQUEE>")
'字体颜色
oReg.Pattern="\[COLOR\=(\#[0-9A-Fa-f]{6})\]"
strTmp=oReg.Replace(strTmp,"<FONT COLOR=""$1"">")
'字体大小
oReg.Pattern="\[SIZE\=([1-7])\]"
strTmp=oReg.Replace(strTmp,"<FONT SIZE=""$1"">")
'字体名称
oReg.Pattern="\[FONT\=([^\]\[\s]+)\]"
strTmp=oReg.Replace(strTmp,"<FONT FACE=""$1"">")
'字体相关属性结尾
oReg.Pattern="\[\/COLOR\]"
strTmp=oReg.Replace(strTmp,"</FONT>")
oReg.Pattern="\[\/SIZE\]"
strTmp=oReg.Replace(strTmp,"</FONT>")
oReg.Pattern="\[\/FONT\]"
strTmp=oReg.Replace(strTmp,"</FONT>")
'-----------------------以下是表情代码----------------------
oReg.Pattern="\/\/smail"
strTemp=oReg.Replace(strTemp,"<IMG SRC=""/images/smail.gif"">")
oReg.Pattern="\/\/cool"
strTemp=oReg.Replace(strTemp,"<IMG SRC=""/images/cool.gif"">")
oReg.Pattern="\/\/gege"
strTemp=oReg.Replace(strTemp,"<IMG SRC=""/images/gege.gif"">")
oReg.Pattern="\/\/mm"
strTemp=oReg.Replace(strTemp,"<IMG SRC=""/images/mm.gif"">")
'-----------------------------------------------------------
UBBDecode=strTmp
End Function
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>UBB测试</TITLE>
</HEAD>
<BODY><FONT SIZE=2>
Response.Write UBBDecode("[SIZE=1][COLOR=#880000][B][U][S]测试一下![/S][/U][/B][/COLOR][/SIZE]")<BR>
Response.Write UBBDecode("[SIZE=2][COLOR=#008800][B][U][S]测试一下![/S][/U][/B][/COLOR][/SIZE]")<BR>
Response.Write UBBDecode("[mail=eglic@etang.com][SIZE=3][COLOR=#000088][B][U][S]测试一下![/S][/U][/B][/COLOR][/size][/mail]")<BR>
Response.Write UBBDecode("[URL=http://www.hfpcinfo.net][SIZE=4][COLOR=#000088][B][U][S]测试一下![/S][/U][/B][/COLOR][/size][/URL]")<BR>
Response.Write UBBDecode("[SIZE=3][COLOR=#00A000]嵌套示例,这个是programfan.com的弱点[/COLOR][/SIZE]")<BR>
Response.Write UBBDecode("图片示例:[IMG]http://www.programfan.com/bc.gif[/IMG]")<BR>
Response.Write UBBDecode("[FLY]滚动字幕http://www.programfan.com/bc.gif[/FLY]")<BR>
Response.Write UBBDecode("[FONT=楷体_GB2312]我是楷体字[/FONT]")<BR>
Response.Write UBBDecode("[FONT=黑体]我是黑体字[/FONT]")<BR>
Response.Write UBBDecode("[FONT=宋体]我是宋体字[/FONT]")<BR>
</FONT>
效果如下:<HR>
<%
Response.Write UBBDecode("[SIZE=1][COLOR=#880000][B][U][S]测试一下![/S][/U][/B][/COLOR][/SIZE]<BR>")
Response.Write UBBDecode("[SIZE=2][COLOR=#008800][B][U][S]测试一下![/S][/U][/B][/COLOR][/SIZE]<BR>")
Response.Write UBBDecode("[mail=eglic@etang.com][SIZE=3][COLOR=#000088][B][U][S]测试一下![/S][/U][/B][/COLOR][/size][/mail]<BR>")
Response.Write UBBDecode("[URL=http://www.hfpcinfo.net][SIZE=4][COLOR=#000088][B][U][S]测试一下![/S][/U][/B][/COLOR][/size][/URL]<BR>")
Response.Write UBBDecode("[SIZE=3][COLOR=#00A000]嵌套示例,这个是programfan.com的弱点[/COLOR][/SIZE]<BR>")
Response.Write UBBDecode("图片示例:[IMG]http://www.programfan.com/bc.gif[/IMG]<BR>")
Response.Write UBBDecode("[FLY]滚动字幕http://www.programfan.com/bc.gif[/FLY]<BR>")
Response.Write UBBDecode("[FONT=楷体_GB2312]我是楷体字[/FONT]<BR>")
Response.Write UBBDecode("[FONT=黑体]我是黑体字[/FONT]<BR>")
Response.Write UBBDecode("[FONT=宋体]我是宋体字[/FONT]<BR>")
%>
</BODY>
</HTML>
<%@ language="VBScript"%>
<%
Function UBBDecode(str)
Dim oReg
Dim strTmp
Set oReg=New RegExp
strTmp=str
oReg.Global=True
oReg.IgnoreCase=True
'下划线
oReg.Pattern="\[U\]"
strTmp=oReg.Replace(strTmp,"<U>")
oReg.Pattern="\[\/U\]"
strTmp=oReg.Replace(strTmp,"</U>")
'粗体
oReg.Pattern="\[B\]"
strTmp=oReg.Replace(strTmp,"<B>")
oReg.Pattern="\[\/B\]"
strTmp=oReg.Replace(strTmp,"</B>")
'斜体
oReg.Pattern="\[I\]"
strTmp=oReg.Replace(strTmp,"<I>")
oReg.Pattern="\[\/I\]"
strTmp=oReg.Replace(strTmp,"</I>")
'删除线
oReg.Pattern="\[S\]"
strTmp=oReg.Replace(strTmp,"<STRIKE>")
oReg.Pattern="\[\/S\]"
strTmp=oReg.Replace(strTmp,"</STRIKE>")
'上标
oReg.Pattern="\[SUP\]"
strTmp=oReg.Replace(strTmp,"<SUP>")
oReg.Pattern="\[\/SUP\]"
strTmp=oReg.Replace(strTmp,"</SUP>")
'上标
oReg.Pattern="\[SUB\]"
strTmp=oReg.Replace(strTmp,"<SUB>")
oReg.Pattern="\[\/SUB\]"
strTmp=oReg.Replace(strTmp,"</SUB>")
'向中看齐
oReg.Pattern="\[C\]"
strTmp=oReg.Replace(strTmp,"<CENTER>")
oReg.Pattern="\[\/C\]"
strTmp=oReg.Replace(strTmp,"</CENTER>")
'超链接
oReg.Pattern="\[URL\=([a-zA-Z0-9\-\_\/\:\.\?\&\%\+\=]+)\](.+)\[\/URL\]"
strTmp=oReg.Replace(strTmp,"<A HREF=""$1"" TARGET=""_BLANK"">$2</A>")
'邮件超链接
oReg.Pattern="\[MAIL\=([a-zA-Z0-9\-\_\.\?\@]+)\](.+)\[\/MAIL\]"
strTmp=oReg.Replace(strTmp,"<A HREF=""mailto:$1"">$2</A>")
'图片
oReg.Pattern="\[IMG\]([a-zA-Z0-9\-\_\/\:\.\?\&\%\+\=]+)\[\/IMG\]"
strTmp=oReg.Replace(strTmp,"<IMG SRC=""$1"" BORDER=""0"">")
'飞行字
oReg.Pattern="\[FLY\]"
strTmp=oReg.Replace(strTmp,"<MARQUEE>")
oReg.Pattern="\[\/FLY\]"
strTmp=oReg.Replace(strTmp,"</MARQUEE>")
'字体颜色
oReg.Pattern="\[COLOR\=(\#[0-9A-Fa-f]{6})\]"
strTmp=oReg.Replace(strTmp,"<FONT COLOR=""$1"">")
'字体大小
oReg.Pattern="\[SIZE\=([1-7])\]"
strTmp=oReg.Replace(strTmp,"<FONT SIZE=""$1"">")
'字体名称
oReg.Pattern="\[FONT\=([^\]\[\s]+)\]"
strTmp=oReg.Replace(strTmp,"<FONT FACE=""$1"">")
'字体相关属性结尾
oReg.Pattern="\[\/COLOR\]"
strTmp=oReg.Replace(strTmp,"</FONT>")
oReg.Pattern="\[\/SIZE\]"
strTmp=oReg.Replace(strTmp,"</FONT>")
oReg.Pattern="\[\/FONT\]"
strTmp=oReg.Replace(strTmp,"</FONT>")
'-----------------------以下是表情代码----------------------
oReg.Pattern="\/\/smail"
strTemp=oReg.Replace(strTemp,"<IMG SRC=""/images/smail.gif"">")
oReg.Pattern="\/\/cool"
strTemp=oReg.Replace(strTemp,"<IMG SRC=""/images/cool.gif"">")
oReg.Pattern="\/\/gege"
strTemp=oReg.Replace(strTemp,"<IMG SRC=""/images/gege.gif"">")
oReg.Pattern="\/\/mm"
strTemp=oReg.Replace(strTemp,"<IMG SRC=""/images/mm.gif"">")
'-----------------------------------------------------------
UBBDecode=strTmp
End Function
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>UBB测试</TITLE>
</HEAD>
<BODY><FONT SIZE=2>
Response.Write UBBDecode("[SIZE=1][COLOR=#880000][B][U][S]测试一下![/S][/U][/B][/COLOR][/SIZE]")<BR>
Response.Write UBBDecode("[SIZE=2][COLOR=#008800][B][U][S]测试一下![/S][/U][/B][/COLOR][/SIZE]")<BR>
Response.Write UBBDecode("[mail=eglic@etang.com][SIZE=3][COLOR=#000088][B][U][S]测试一下![/S][/U][/B][/COLOR][/size][/mail]")<BR>
Response.Write UBBDecode("[URL=http://www.hfpcinfo.net][SIZE=4][COLOR=#000088][B][U][S]测试一下![/S][/U][/B][/COLOR][/size][/URL]")<BR>
Response.Write UBBDecode("[SIZE=3][COLOR=#00A000]嵌套示例,这个是programfan.com的弱点[/COLOR][/SIZE]")<BR>
Response.Write UBBDecode("图片示例:[IMG]http://www.programfan.com/bc.gif[/IMG]")<BR>
Response.Write UBBDecode("[FLY]滚动字幕http://www.programfan.com/bc.gif[/FLY]")<BR>
Response.Write UBBDecode("[FONT=楷体_GB2312]我是楷体字[/FONT]")<BR>
Response.Write UBBDecode("[FONT=黑体]我是黑体字[/FONT]")<BR>
Response.Write UBBDecode("[FONT=宋体]我是宋体字[/FONT]")<BR>
</FONT>
效果如下:<HR>
<%
Response.Write UBBDecode("[SIZE=1][COLOR=#880000][B][U][S]测试一下![/S][/U][/B][/COLOR][/SIZE]<BR>")
Response.Write UBBDecode("[SIZE=2][COLOR=#008800][B][U][S]测试一下![/S][/U][/B][/COLOR][/SIZE]<BR>")
Response.Write UBBDecode("[mail=eglic@etang.com][SIZE=3][COLOR=#000088][B][U][S]测试一下![/S][/U][/B][/COLOR][/size][/mail]<BR>")
Response.Write UBBDecode("[URL=http://www.hfpcinfo.net][SIZE=4][COLOR=#000088][B][U][S]测试一下![/S][/U][/B][/COLOR][/size][/URL]<BR>")
Response.Write UBBDecode("[SIZE=3][COLOR=#00A000]嵌套示例,这个是programfan.com的弱点[/COLOR][/SIZE]<BR>")
Response.Write UBBDecode("图片示例:[IMG]http://www.programfan.com/bc.gif[/IMG]<BR>")
Response.Write UBBDecode("[FLY]滚动字幕http://www.programfan.com/bc.gif[/FLY]<BR>")
Response.Write UBBDecode("[FONT=楷体_GB2312]我是楷体字[/FONT]<BR>")
Response.Write UBBDecode("[FONT=黑体]我是黑体字[/FONT]<BR>")
Response.Write UBBDecode("[FONT=宋体]我是宋体字[/FONT]<BR>")
%>
</BODY>
</HTML>