首页 / 正则表达式 / jb51用的ubb转换 原创
ubbcode.asp
复制代码 代码如下:
<%
Function UBBCode(strContent)
If isEmpty(strContent) Or isNull(strContent) Then
Exit Function
Else
dim regex,strMatch
set regex=new RegExp
regex.IgnoreCase =True
regex.Global=True
regex.Pattern="[html]((
)?([sS]+?))[/html]"
Set strMatchs=regex.Execute(strContent)
For Each strMatch in strMatchs
"response.write strMatch.SubMatches(3)
Randomize
rndID="runcode"&Int(100000 * Rnd)
strContent=Replace(strContent,strMatch.Value,"<br/><font color=red>HTML代码:</font><TEXTAREA style=""width:96%; height:300px;"" id="""&rndID&""" class=""htmlarea"">"&UBBFilter(HTMLDecode(strMatch.SubMatches(2)))& "</TEXTAREA><br/><INPUT onclick=""runEx(""&rndID&"")"" type=""button"" value=""运行此代码""/> <INPUT onclick=""doCopy("&rndID&")"" type=""button"" value=""复制此代码""/> <INPUT onclick=""doSave("&rndID&")"" type=""button"" value=""保存代码""/><br/> [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]")
Next
Set strMatchs=nothing
"去空行
regex.pattern="
[s]*
"
Set strMatchs=regex.Execute(strContent)
For Each strMatch in strMatchs
strContent=Replace(strContent,strMatch.Value,"")
Next
"代码块
regex.Pattern="[code]((
)?([sS]+?))[/code]"
Set strMatchs=regex.Execute(strContent)
For Each strMatch in strMatchs
Randomize
rndID="code"&Int(100000 * Rnd)
strContent=Replace(strContent,strMatch.Value,"<br/><div style=""float:left""><font color=green>CODE代码:</font></div><div style=""float:right;text-align:right;"">[<a href=""javascript:void(null)"" onclick=""doCopy("&rndID&")"">复制此代码</a>]</div><br/><div class=""codetextarea"" id="""&rndID&""">"&strMatch.SubMatches(2)&"</div>")
Next
Set strMatchs=nothing
"实现插入影音文件
regex.Pattern="[(swf|wma|wmv|rm|ra|qt)(=d*?|)(,d*?|)]([^<>]*?)[/(swf|wma|wmv|rm|ra|qt)]"
Set strMatchs=regex.Execute(strContent)
dim strType,strWidth,strHeight,strSRC,TitleText
For Each strMatch in strMatchs
RAndomize
strType=strMatch.SubMatches(0)
if strType="swf" then
TitleText="<img src=""../images/flash.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>Flash动画"
elseif strType="wma" then
TitleText="<img src=""../images/music.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>播放音频文件"
elseif strType="wmv" then
TitleText="<img src=""../images/mediaplayer.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>播放视频文件"
elseif strType="rm" then
TitleText="<img src=""../images/realplayer.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>播放real视频流文件"
elseif strType="ra" then
TitleText="<img src=""../images/realplayer.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>播放real音频流文件"
elseif strType="qt" then
TitleText="<img src=""../images/mediaplayer.gif"" alt="""" style=""margin:0px 2px -3px 0px"" border=""0""/>播放mov视频文件"
end if
strWidth=strMatch.SubMatches(1)
strHeight=strMatch.SubMatches(2)
if (len(strWidth)=0) then
strWidth="400"
else
strWidth=right(strWidth,(len(strWidth)-1))
end if
if (len(strHeight)=0) then
strHeight="300"
else
strHeight=right(strHeight,(len(strHeight)-1))
end if
strSRC=strMatch.SubMatches(3)
rndID="temp"&Int(100000 * Rnd)
strContent= Replace(strContent,strMatch.Value,"<div class=""UBBPanel""><div class=""UBBTitle"">"&TitleText&"</div><div class=""UBBContent""><a id="""+rndID+"_href"" href=""javascript:MediaShow(""+strType+"",""+rndID+"",""+strSRC+"",""+strWidth+"",""+strHeight+"")""><img name="""+rndID+"_img"" src=""../images/mm_snd.gif"" style=""margin:0px 3px -2px 0px"" border=""0"" alt=""""/><span id="""+rndID+"_text"">在线播放</span></a><div id="""+rndID+"""></div></div></div>")
Next
Set strMatchs=nothing
regex.Pattern="([mid])(.[^]]*)[/mid]"
strContent= regex.Replace(strContent,"<embed src=""$2"" height=""45"" width=""314"" autostart=""0""></embed>")
regex.pattern="<br>([s| | ]*)?<br>"
strContent=regex.replace(strContent,"<br>")
strContent=replace(strContent,"&","&")
strContent=replace(strContent,""",""")
strContent=replace(strContent,"","") "因为以前上传图片
set regex=nothing
end if
UBBCode=strContent
end function
%>
基本上来自pjhome