jb51用的ubb转换 原创

所属分类: 网络编程 / 正则表达式 阅读数: 642
收藏 0 赞 0 分享
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\]((\r\n)?([\s\S]+?))\[\/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="\n[\s]*\r"
Set strMatchs=regex.Execute(strContent)
For Each strMatch in strMatchs
strContent=Replace(strContent,strMatch.Value,"")
Next
'代码块
regex.Pattern="\[code\]((\r\n)?([\s\S]+?))\[\/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|&nbsp;| ]*)?<br>"
strContent=regex.replace(strContent,"<br>")
strContent=replace(strContent,"&amp;","&")
strContent=replace(strContent,"'","'")
strContent=replace(strContent,"","") '因为以前上传图片

set regex=nothing
end if
UBBCode=strContent
end function
%>

基本上来自pjhome
更多精彩内容其他人还在看

正则表达式详细介绍(上)

这篇文章主要介绍了正则表达式,正则表达式是由英文词语regular expression翻译过来的,就是符合某种规则的表达式。本文将会详细的介绍正则表达式,需要的朋友可以参考下
收藏 0 赞 0 分享

正则表达式详细介绍(下)

这篇文章继续介绍了更多关于正则表达式知识点,帮助大家更好的认识正则表达式,从而更好的掌握它,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

比较常用证件正则表达式验证大全

最近做项目,有项目需求需要对各种常用的证件进行验证。而港澳通行证,台湾通行证,护照这些证件,在网上没有搜到正则验证的方法,后来经过一番折腾,结合validator这个验证插件写了一些代码,在此分享给大家,需要的朋友可以参考下
收藏 0 赞 0 分享

正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式

这篇文章主要介绍了正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式的方法,是一个比较简单实用的正则替换应用,对于怎能则表达式的学习具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

js使用正则子表达式匹配首字母与尾字母相同单词的方法

这篇文章主要介绍了js使用正则子表达式匹配首字母与尾字母相同单词的方法,可实现将多行文本框中首位字母相同的单词进行匹配的功能,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

正则表达式中的正向预查和负向预查实例分析

这篇文章主要介绍了正则表达式中的正向预查和负向预查,实例分析了正向预查和负向预查的概念与具体用法,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

js正则表达式中的单行模式与多行模式实例分析

这篇文章主要介绍了js正则表达式中的单行模式与多行模式,实例分析了js正则表达式中实现单行模式与多行模式的技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

js正则查找match()与替换replace()用法实例

这篇文章主要介绍了js正则查找match()与替换replace()用法,实例分析了js中正则的查找match()与替换replace()的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

js正则表达式test()和exec()用法实例

这篇文章主要介绍了js正则表达式test()和exec()用法,实例分析了test()函数和exec()函数在进行正则匹配时的使用技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php正则替换变量指定字符的方法

这篇文章主要介绍了php正则替换变量指定字符的方法,涉及php使用正则表达式进行字符串替换的技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多