|
|
三年前写过的部分UBB函数(落后了)!
以下内容含脚本,或可能导致页面不正常的代码
三年前写过的部分UBB函数,相对于现在可是大大落后了!
三年前主要是CGI的Bbs2000、3000等(后来好象改成雷敖),当时动网还是“小孩子”,谁知时至今日已经这样出名了(我好象还留有当时的源代码)。当时由于受到PHP、JSP等随着新版本的完善和扩充而人气大升以及老牌CGI的双重夹击,加上ASP本身的缺陷,使用ASP的网页是越来越少,当时较有名的论坛使用ASP就是设计联盟和动网,但随着ASP.net和Win2000服务器在国内的使用率不断上升以及动网(对专业论坛设计的不懈追求者)的不断完善和功能提升,使用ASP的网页(站)又多起来,以至今日的动网成为了专业论坛设计的一哥。最后一个因素纯属自己的观点。
<% '...当引用过“content”变量时,可参“postform.inc”
Function UnUBBCode(content) '删除UBB标记
Dim RegEx
Set RegEx = New RegExp
RegEx.IgnoreCase = True
RegEx.Global = True
RegEx.Pattern = " :em\d+?:" '笑脸转换
content = RegEx.Replace(content, " ")
RegEx.Pattern = "\[\/\S+?\]" '[/XX]标记
val = RegEx.Test(content) '搜索到匹配返回True
if not(val) then '如果没有标记,一般可以说明是用户自己写的如:[内容],而UBB非标记。
UnUBBCode = content
Exit Function
end if
RegEx.Pattern = "\[\S+?\]" '笑脸转换以外1;需分为两步:1.[XX];2.[/XX]。
content = RegEx.Replace(content, " ")
RegEx.Pattern = "\[\/\S+?\]" '笑脸转换以外2
content = RegEx.Replace(content, " ")
Set RegEx = Nothing
UnUBBCode = content
End Function
Function LimitReturns(content)
Dim RegEx
Set RegEx = New RegExp
RegEx.IgnoreCase = True
RegEx.Global = True
RegEx.Pattern = "\n{2,}"
content = RegEx.Replace(content, "\n")
RegEx.Pattern = "(\n\r\n){2,}"
content = RegEx.Replace(content, "\n\r\n")
RegEx.Pattern = "\r{2,}"
content = RegEx.Replace(content, "\r")
Set RegEx = Nothing
LimitReturns = content
End Function
Function ConvertReturns(content)
Dim RegEx
Set RegEx = New RegExp
RegEx.IgnoreCase = True
RegEx.Global = True
RegEx.Pattern = "\n\r\n"
content = RegEx.Replace(content, "")
RegEx.Pattern = "\n"
content = RegEx.Replace(content, "
")
RegEx.Pattern = "\r"
content = RegEx.Replace(content, "")
RegEx.Pattern = "(){2,}"
content = RegEx.Replace(content, "")
RegEx.Pattern = "(
){2,}"
content = RegEx.Replace(content, "
")
RegEx.Pattern = "<!"
content = RegEx.Replace(content, "< !")
Set RegEx = Nothing
ConvertReturns = content
End Function
Function Smilies(content)
Dim RegEx
Set RegEx = New RegExp
RegEx.IgnoreCase = True
RegEx.Global = True
RegEx.Pattern = " :em01:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em01.gif"">")
RegEx.Pattern = " :em02:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em02.gif"">")
RegEx.Pattern = " :em03:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em03.gif"">")
RegEx.Pattern = " :em04:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em04.gif"">")
RegEx.Pattern = " :em05:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em05.gif"">")
RegEx.Pattern = " :em06:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em06.gif"">")
RegEx.Pattern = " :em07:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em07.gif"">")
RegEx.Pattern = " :em08:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em08.gif"">")
RegEx.Pattern = " :em09:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em09.gif"">")
RegEx.Pattern = " :em10:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em10.gif"">")
RegEx.Pattern = " :em11:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em11.gif"">")
RegEx.Pattern = " :em12:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em12.gif"">")
RegEx.Pattern = " :em13:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em13.gif"">")
RegEx.Pattern = " :em14:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em14.gif"">")
RegEx.Pattern = " :em14:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em15.gif"">")
RegEx.Pattern = " :em16:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em16.gif"">")
RegEx.Pattern = " :em17:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em17.gif"">")
RegEx.Pattern = " :em18:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em18.gif"">")
RegEx.Pattern = " :em19:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em19.gif"">")
RegEx.Pattern = " :em20:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em20.gif"">")
RegEx.Pattern = " :em21:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em21.gif"">")
RegEx.Pattern = " :em22:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em22.gif"">")
RegEx.Pattern = " :em23:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em23.gif"">")
RegEx.Pattern = " :em24:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em24.gif"">")
RegEx.Pattern = " :em25:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em25.gif"">")
RegEx.Pattern = " :em26:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em26.gif"">")
RegEx.Pattern = " :em27:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em27.gif"">")
RegEx.Pattern = " :em28:"
content = RegEx.Replace(content, "<IMG SRC=""img/msgface/em28.gif"">")
Set RegEx = Nothing
Smilies = content
End Function
Function UbbCode(content)
'content = Server.HtmlEncode(content) '----------
content = LimitReturns(content)
content = ConvertReturns(content)
content = Smilies(content) '----------
Dim RegEx
Set RegEx = New RegExp
RegEx.IgnoreCase = True
RegEx.Global = True
RegEx.Pattern = "(^|\s)(http:\/\/\S+)"
content = RegEx.Replace(content, "<A href=""$2"" TARGET=_blank>$2</A>")
RegEx.Pattern = "(^|\s)(www\.\S+)"
content = RegEx.Replace(content, "<A href=""http://$2"" TARGET=_blank>$2</A>")
RegEx.Pattern = "(\[URL\])(http|https|ftp)(:\/\/\S+?)(\[\/URL\])"
content = RegEx.Replace(content, "<A href=""$2$3"" TARGET=_blank>$2$3</A>")
RegEx.Pattern = "(\[URL\])(\S+?)(\[\/URL\])"
content = RegEx.Replace(content, "<A href=""http://$2"" TARGET=_blank>$2</A>")
RegEx.Pattern = "(\[URL=)(http|https|ftp)(:\/\/\S+?)(\])(.+?)(\[\/URL\])"
content = RegEx.Replace(content, "<A href=""$2$3"" TARGET=_blank>$5</A>")
RegEx.Pattern = "(\[download=)(http|https|ftp)(:\/\/\S+?)(\])(.+?)(\[\/download\])"
content = RegEx.Replace(content, "<img src=""img/topic/download.gif""><A href=""$2$3"">$5</A>")
RegEx.Pattern = "(\[URL=)(\S+?)(\])(.+?)(\[\/URL\])"
content = RegEx.Replace(content, "<A href=""http://$2"" TARGET=_blank>$4</A>")
RegEx.Pattern = "(\[EMAIL=)(\S+\@\S+?)(\])(.+?)(\[\/EMAIL\])"
content = RegEx.Replace(content, "<A href=""mailto 2"">$4</A>")
RegEx.Pattern = "(\[EMAIL\])(\S+\@\S+?)(\[\/EMAIL\])"
content = RegEx.Replace(content, "<A href=""mailto 2"">$2</A>")
RegEx.Pattern = "(\[code\])(.+?)(\[\/code\])"
content = RegEx.Replace(content, "<BLOCKQUOTE>代码:<HR><pre>$2</pre><HR></BLOCKQUOTE>")
RegEx.Pattern = "(\[IMG\])(\S+?)(\[\/IMG\])" '不准许空格的地址
content = RegEx.Replace(content, "<IMG SRC=""$2"">")
RegEx.Pattern = "(\[QUOTE\])(.+?)(\[\/QUOTE\])"
content = RegEx.Replace(content, "<BLOCKQUOTE>引用:<HR>$2<HR></BLOCKQUOTE>") '如果线条太宽,就要修改
RegEx.Pattern = "(\[i\])(.+?)(\[\/i\])"
content = RegEx.Replace(content, "<I>$2</I>")
RegEx.Pattern = "(\[u\])(.+?)(\[\/u\])"
content = RegEx.Replace(content, "<u>$2</u>")
RegEx.Pattern = "(\[b\])(.+?)(\[\/b\])"
content = RegEx.Replace(content, "<B>$2</B>")
RegEx.Pattern = "(\[list\])(.+?)(\[\/list\])"
content = RegEx.Replace(content, "<UL TYPE=SQUARE>$2</UL>")
RegEx.Pattern = "(\[list=)(A|1)(\])(.+?)(\[\/list\])"
content = RegEx.Replace(content, "<OL TYPE=$2>$4</OL>")
RegEx.Pattern = "(\[\*\])"
content = RegEx.Replace(content, "<LI>")
RegEx.Pattern = "(\)(.+?)(\[\/font\])"
content = RegEx.Replace(content, "<font face=""$2"">$4</font>")
RegEx.Pattern = "(\[size=)(\d+?)(\])(.+?)(\[\/size\])"
content = RegEx.Replace(content, "<font size=""$2"">$4</font>")
RegEx.Pattern = "(\[color=)(\S+?)(\])(.+?)(\[\/color\])"
content = RegEx.Replace(content, "<font color=""$2"">$4</font>")
RegEx.Pattern = "(\[h1\])(.+?)(\[\/h1\])"
content = RegEx.Replace(content, "<h1>$2</h1>")
RegEx.Pattern = "(\[h2\])(.+?)(\[\/h2\])"
content = RegEx.Replace(content, "<h2>$2</h2>")
RegEx.Pattern = "(\[h3\])(.+?)(\[\/h3\])"
content = RegEx.Replace(content, "<h3>$2</h3>")
RegEx.Pattern = "(\[h4\])(.+?)(\[\/h4\])"
content = RegEx.Replace(content, "<h4>$2</h4>")
RegEx.Pattern = "(\[h5\])(.+?)(\[\/h5\])"
content = RegEx.Replace(content, "<h5>$2</h5>")
RegEx.Pattern = "(\[h6\])(.+?)(\[\/h6\])"
content = RegEx.Replace(content, "<h6>$2</h6>")
RegEx.Pattern = "(\[sup\])(.+?)(\[\/sup\])"
content = RegEx.Replace(content, "<sup>$2</sup>")
RegEx.Pattern = "(\[sub\])(.+?)(\[\/sub\])"
content = RegEx.Replace(content, "<sub>$2</sub>")
RegEx.Pattern = "(\[center\])(.+?)(\[\/center\])"
content = RegEx.Replace(content, "<center>$2</center>")
RegEx.Pattern = "(\[left\])(.+?)(\[\/left\])"
content = RegEx.Replace(content, "<div align=left>$2</div>")
RegEx.Pattern = "(\[right\])(.+?)(\[\/right\])"
content = RegEx.Replace(content, "<div align=right>$2</div>")
RegEx.Pattern = "(\[pre\])(.+?)(\[\/pre\])"
content = RegEx.Replace(content, "<pre>$2</pre>")
RegEx.Pattern = "(\[fly\])(.+?)(\[\/fly\])"
content = RegEx.Replace(content, "<MARQUEE behavior=alternate scrollAmount=3 width=""90%"">$2</MARQUEE>")
RegEx.Pattern = "(\[move\])(.+?)(\[\/move\])"
content = RegEx.Replace(content, "<MARQUEE scrollAmount=3 width=""90%"">$2</MARQUEE>")
RegEx.Pattern = "(\[sound\])(\S+?)(\[\/sound\])" '因本地路径有空格,在测试时要把“S”改成"."
content = RegEx.Replace(content, "<bgsound src=""$2"" border=0><img src=""img/topic/midi.gif"" width=16 height=16 alt=MIDI音乐>")
RegEx.Pattern = "(\[w\])(http|https|ftp)(:\/\/\S+?)(\[\/w\])"
content = RegEx.Replace(content, "<IFRAME FRAMEBORDER=1 ALIGN=CENTER width=""100%"" HEIGHT=400 SCROLLING=YES SRC=""$2$3"">
页面:<A href=""$2$3"" target=_blank>点这儿参观</A>")
RegEx.Pattern = "(\[swf\])(http|https|ftp)(:\/\/\S+?)(\[\/swf\])"
content = RegEx.Replace(content, "<param name=play value=true><param name=loop value=true><param name=quality value=high><embed src=""$2$3"" quality=high pluginspage=""http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"" type=""application/x-shockwave-flash""></embed>")
RegEx.Pattern = "(\[flash=)(\d+)(,)(\d+)(\])(http|https|ftp)(:\/\/\S+?)(\[\/flash\])"
content = RegEx.Replace(content, "<object classid=""clsid 27CDB6E-AE6D-11cf-96B8-444553540000"" width=""$2"" height=""$4""><param name=movie value=""$6$7""><param name=play value=true><param name=loop value=true><param name=quality value=high><embed src=""$6$7"" width=""$2"" height=""$4"" play=true loop=true quality=high></embed></object>")
Set RegEx = Nothing
UbbCode = content
End Function
%>
说明:上面显示的是代码内容。您可以先检查过代码没问题,或修改之后再运行.
|
|