回 帖 发 新 帖 刷新版面

主题:[支持原创]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>

回复列表 (共1个回复)

沙发

由于论坛的UBB代码处理有问题
所以上面的帖子显示不正常
<BODY>和</BODY>中间的ASP代码请参考上面的链接

上面的全角字符[和]均换成半角[和]

我来回复

您尚未登录,请登录后再回复。点此登录或注册