当前位置: 首页 > 图文教程 > 网络编程 > 正则表达式 > UBB 转换函数演示 (经典论坛)

正则表达式
[原创]正则匹配后面非指定字符的正则
一个关于正则表达式的问题
代替正则:HyperScriptExpression联合开发倡议公告
[原创]正则替换字符串功能
[原创]java 正则表达式基础,实例学习资料收集大全
web标准知识:丰富段落里的标签
js判断是否有6个连续数字的字符串的正则
正则表达式中的反向预搜索实现
精通 JavaScript中的正则表达式手机整理 推荐
取图片路径的正则
UBB 转换函数演示 (经典论坛)
pjblog的ubbcodeasp文件
PBlog2 公用JS代码
用的ubb转换
密码强度检测函数(正则)
正则表达式工具 Match Tracer
编写采集规则的好帮手—RegexBuddy 下载,正则不再难
正则表达式30分钟入门教程 v2.1版
asp 图片正则 替换,替换前检查图片是不是本地地址的方法
正则表达式口诀 正则表达式学习工具

正则表达式 中的 UBB 转换函数演示 (经典论坛)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 40 ::
收藏到网摘: n/a

UBB代码对于经常上论坛的朋友来说是最熟悉不过了。这里我不多说了,关于怎么实现UBB转换,不了解的朋友请看这里正则表达式在UBB论坛中的应用

经典论坛的UBB转换我觉得是处理的非常好的,研究了一下它的转换结果[因为没有源码:)],做了下面的演示。转换结果基本上觉得象了。

主要是针对{code}{html}这两个标签的处理,其他的UBB标签还是一般的处理方法。

下面是分别用javascript和vbscript实现的演示。自己做论坛的朋友,如果想实现类似经典论坛的运行代码框可以看看这种转换。

欢迎大家输入尽量多格式的UBB进行测试,多多指出错误。
javascirpt:

复制代码 代码如下:

<style>
.CodeSamp {
PADDING-RIGHT: 0.5em; MARGIN-TOP: 1em; PADDING-LEFT: 0.5em; FONT-SIZE: 8p; MARGIN-BOTTOM: 1em; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 0pt; PADDING-TOP: 0.5em; FONT-FAMILY: "Courier New"; BACKGROUND-COLOR: #eeeeee;width: 480px;overflow:hidden;border: 1px solid #888888;
}
textarea {
border-width: 1; border-color: #000000;font-size: 12px;FONT-FAMILY: "Tahoma", "MS Shell Dlg";
}
</style>

<TEXTAREA name=phx cols=65 rows=12>
[i][b][color=blue]blue[/color][/b][/i]

{html}[color=red]te
st[/color]{/html}

{html}{code}te
st{/code}{/html}

{code}{html}te
st{/html}{/code}</textarea>
<br><button onclick=show.innerHTML=UBBCode(phx.value,"html")>转换</button><br>
<div id=show style="border:1 solid skyblue;width=500;font-size: 12px;FONT-FAMILY:
'Tahoma', 'MS Shell Dlg';
"></div>


<script>
strIcons = "1" //允许笑脸转换
strSmile="1" //同上
ImgName="em"
picurl="pic/"

function UBBCode(content,html){
st=new Date().getTime()
content=content.replace(/\[(\/)?phx_code\]/ig,"{$1phx_code}");
content=content.replace(/\[(\/)?phx_html\]/ig,"{$1phx_html}");
content="[phx_code]"+content+"[/phx_code]";
content=content.replace(/(\[code\]([\s\S]+?)\[\/code\])/ig,"[/phx_code]$1[phx_code]");
content=content.replace(/\[phx_code\]([\s\S]*?)\[\/phx_code\]/ig,function($1,$2){if(html=="html"){return(HTMLCode($2));}else{return(trans($2));}});
content=content.replace(/\[code\](\r\n)?([\s\S]+?)\[\/code\]/ig,function($1,$2,$3){return("<PRE class=CodeSamp>"+DvbbsHtmlAn($3)+"</PRE>")});
content=content.replace(/\{(\/)?phx_code\}/ig,"[$1phx_code]");
content=content.replace(/\{(\/)?phx_html\}/ig,"[$1phx_html]");
alert('共耗时 '+eval(new Date().getTime()-st)+' ms');
return(content);
}

function HTMLCode(content){
content="[phx_html]"+content+"[/phx_html]";
content=content.replace(/(\[html\]([\s\S]+?)\[\/html\])/ig,"[/phx_html]$1[phx_html]");
content=content.replace(/\[phx_html\]([\s\S]*?)\[\/phx_html\]/ig,function($1,$2){return(trans($2))});
content=content.replace(/\[html\]([\s\S]+?)\[\/html\]/ig,function($1,$2){return("<span><TEXTAREA cols=95 rows=12>"+hencode($2)+"</TEXTAREA><br><INPUT onclick=runCode() type=button value=运行代码>[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]</span>")});
return(content);
}

function hencode(fString){ //简单模拟server.htmlencode ASP中不用这个
fString = fString.replace(/&/ig,"&")
fString = fString.replace(/>/ig,">") //>
fString = fString.replace(/</ig,"<") //<
return fString;
}

function DvbbsHtmlAn(fString){

if(fString=="")return("");

fString=hencode(fString)

fString = fString.replace(/\t/ig," ") //Tab
fString = fString.replace(/"/ig,""") //"
fString = fString.replace(/'/ig,"'") //'
fString = fString.replace(/\r/ig,"") //回车是一个13+10
fString = fString.replace(/\n\n/ig,"<P>") //
fString = fString.replace(/\n/ig,"<BR>") //换行
fString = fString.replace(/\x20/ig," ") //空格


return(fString);
}

function trans(strContent){
var re;
strContent=DvbbsHtmlAn(strContent);
re=/\[IMG\](.+?)\[\/IMG\]/ig;
strContent=strContent.replace(re,"<a href=$1 target=_blank><IMG SRC=$1 border=0 alt=按此在新窗口浏览图片 onload=\"javascript:if(this.width>screen.width-333)this.width=screen.width-333\" galleryImg=no></a>");
re=/\[DIR=*([0-9]*),*([0-9]*)\](.*?)\[\/DIR]/ig
strContent=strContent.replace(re,"<object classid=clsid:166B1BCA-3F9C-11CF-8075-444553540000 codebase=http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=7,0,2,0 width=$1 height=$2><param name=src value=$3><embed src=$3 pluginspage=http://www.macromedia.com/shockwave/download/ width=$1 height=$2></embed></object>")
re=/\[QT=*([0-9]*),*([0-9]*)\](.*?)\[\/QT]/ig
strContent=strContent.replace(re,"<embed src=$3 width=$1 height=$2 autoplay=true loop=false controller=true playeveryframe=false cache=false scale=TOFIT bgcolor=#000000 kioskmode=false targetcache=false pluginspage=http://www.apple.com/quicktime/>")
re=/\[MP=*([0-9]*),*([0-9]*)\](.*?)\[\/MP]/ig
strContent=strContent.replace(re,"<object align=middle classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 class=OBJECT id=MediaPlayer width=$1 height=$2 ><param name=ShowStatusBar value=-1><param name=Filename value=$3><embed type=application/x-oleobject codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 flename=mp src=$3 width=$1 height=$2></embed></object>")
re=/\[RM=*([0-9]*),*([0-9]*)\](.*?)\[\/RM]/ig
strContent=strContent.replace(re,"<OBJECT classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA class=OBJECT id=RAOCX width=$1 height=$2><PARAM NAME=SRC VALUE=$3><PARAM NAME=CONSOLE VALUE=Clip1><PARAM NAME=CONTROLS VALUE=imagewindow><PARAM NAME=AUTOSTART VALUE=true></OBJECT><br><OBJECT classid=CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA height=32 id=video2 width=$1><PARAM NAME=SRC VALUE=$3><PARAM NAME=AUTOSTART VALUE=-1><PARAM NAME=CONTROLS VALUE=controlpanel><PARAM NAME=CONSOLE VALUE=Clip1></OBJECT>")


re=/(\[FLASH\])(.*?)(\[\/FLASH\])/ig
strContent= strContent.replace(re,"<OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=500 height=400><PARAM NAME=movie VALUE=$2><PARAM NAME=quality VALUE=high><embed src=$2 quality=high pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width=500 height=400>$2</embed></OBJECT>")
re=/(\[FLASH=*([0-9]*),*([0-9]*)\])(.*?)(\[\/FLASH\])/ig
strContent= strContent.replace(re,"<a href=$4 TARGET=_blank><IMG SRC=pic/swf.gif border=0 alt=点击开新窗口欣赏该FLASH动画!> [全屏欣赏]</a><br><br><OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=$2 height=$3><PARAM NAME=movie VALUE=$4><PARAM NAME=quality VALUE=high><param name=menu value=false><embed src=$4 quality=high menu=false pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width=$2 height=$3>$4</embed></OBJECT>")

re=/(\[UPLOAD=gif\])(.*?)(\[\/UPLOAD\])/ig
strContent= strContent.replace(re,"<br><IMG SRC="+picurl+"gif.gif border=0>此主题相关图片如下:<br><A HREF=$2 TARGET=_blank><IMG SRC=$2 border=0 alt=按此在新窗口浏览图片 onload=\"javascript:if(this.width>screen.width-333)this.width=screen.width-333\"></A>")
re=/(\[UPLOAD=jpg\])(.*?)(\[\/UPLOAD\])/ig
strContent= strContent.replace(re,"<br><IMG SRC="+picurl+"jpg.gif border=0>此主题相关图片如下:<br><A HREF=$2 TARGET=_blank><IMG SRC=$2 border=0 alt=按此在新窗口浏览图片 onload=\"javascript:if(this.width>screen.width-333)this.width=screen.width-333\"></A>")
re=/(\[UPLOAD=bmp\])(.*?)(\[\/UPLOAD\])/ig
strContent= strContent.replace(re,"<br><IMG SRC="+picurl+"bmp.gif border=0>此主题相关图片如下:<br><A HREF=$2 TARGET=_blank><IMG SRC=$2 border=0 alt=按此在新窗口浏览图片 onload=\"javascript:if(this.width>screen.width-333)this.width=screen.width-333\"></A>")

re=/(\[UPLOAD=(.[^\[]*)\])(.*?)(\[\/UPLOAD\])/ig
strContent= strContent.replace(re,"<br><IMG SRC="+picurl+"$2.gif border=0> <a href=$3>点击浏览该文件</a>")

re=/(\[URL\])(.*?)(\[\/URL\])/ig
strContent= strContent.replace(re,"<A HREF=$2 TARGET=_blank>$2</A>")
re=/(\[URL=(.[^\[]*)\])(.*?)(\[\/URL\])/ig
strContent= strContent.replace(re,"<A HREF=$2 TARGET=_blank>$3</A>")

re=/(\[EMAIL\])(.*?)(\[\/EMAIL\])/ig
strContent= strContent.replace(re,"<img align=absmiddle src=pic/email1.gif><A HREF=\"mailto:$2\">$2</A>")
re=/(\[EMAIL=(.[^\[]*)\])(.*?)(\[\/EMAIL\])/ig
strContent= strContent.replace(re,"<img align=absmiddle src=pic/email1.gif><A HREF=\"mailto:$2\" TARGET=_blank>$3</A>")

re =/^(http:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
strContent = strContent.replace(re,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re =/(http:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)$/ig
strContent = strContent.replace(re,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re =/[^>=""](http:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
strContent = strContent.replace(re,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re =/^(ftp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
strContent = strContent.replace(re,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re =/(ftp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)$/ig
strContent = strContent.replace(re,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re =/[^>=""](ftp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
strContent = strContent.replace(re,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re =/^(rtsp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
strContent = strContent.replace(re,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re =/(rtsp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)$/ig
strContent = strContent.replace(re,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re =/[^>=""](rtsp:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
strContent = strContent.replace(re,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re =/^(mms:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
strContent = strContent.replace(re,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re =/(mms:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)$/ig
strContent = strContent.replace(re,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re =/[^>=""](mms:\/\/[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)/ig
strContent = strContent.replace(re,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")

if(strIcons == "1"){ //笑脸转换
re=/(\[em(.*?)\])/ig
strContent=strContent.replace(re,"<img src="+picurl+ImgName+"$2.gif border=0 align=middle>")
}

if(strSmile == "1"){ //笑脸转换
re=/(\[s(\d{1,2})\])/ig
strContent=strContent.replace(re,"<img src=smile/face$2.gif border=0 align=middle>")
}

re=/(\[color=(.[^\[]*)\])(.*?)(\[\/color\])/ig
strContent=strContent.replace(re,"<font color=$2>$3</font>")
re=/(\[face=(.[^\[]*)\])(.*?)(\[\/face\])/ig
strContent=strContent.replace(re,"<font face=$2>$3</font>")
re=/(\[align=(.[^\[]*)\])(.*?)(\[\/align\])/ig
strContent=strContent.replace(re,"<div align=$2>$3</div>")
//循环转换quote
re=/(\[QUOTE\])(.*?)(\[\/QUOTE\])/ig
while(strContent.indexOf("[quote]")>0 && strContent.indexOf("[/quote] ")>0){
strContent=strContent.replace(re,"<blockquote>引用:<hr><span>$2</span><hr></blockquote>")
}
re=/(\[fly\])(.*?)(\[\/fly\])/ig
strContent=strContent.replace(re,"<marquee width=90% behavior=alternate scrollamount=3>$2</marquee>")
re=/(\[move\])(.*?)(\[\/move\])/ig
strContent=strContent.replace(re,"<MARQUEE scrollamount=3>$2</marquee>")
re=/\[GLOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\](.*?)\[\/GLOW]/ig
strContent=strContent.replace(re,"<table width=$1 style=\"filter:glow(color=$2, strength=$3)\">$4</table>")
re=/\[SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\](.*?)\[\/SHADOW]/ig
strContent=strContent.replace(re,"<table width=$1 style=\"filter:shadow(color=$2, strength=$3)\">$4</table>")

re=/(\[i\])(.*?)(\[\/i\])/ig
strContent=strContent.replace(re,"<i>$2</i>")
re=/(\[u\])(.*?)(\[\/u\])/ig
strContent=strContent.replace(re,"<u>$2</u>")
re=/(\[b\])(.*?)(\[\/b\])/ig
strContent=strContent.replace(re,"<b>$2</b>")

re=/(\[size=1\])(.*?)(\[\/size\])/ig
strContent=strContent.replace(re,"<font size=1>$2</font>")
re=/(\[size=2\])(.*?)(\[\/size\])/ig
strContent=strContent.replace(re,"<font size=2>$2</font>")
re=/(\[size=3\])(.*?)(\[\/size\])/ig
strContent=strContent.replace(re,"<font size=5>$2</font>")
re=/(\[size=4\])(.*?)(\[\/size\])/ig
strContent=strContent.replace(re,"<font size=6>$2</font>")
re=/\[size=([+|-]?[0-7])\](.*?)(\[\/size\])/ig
strContent=strContent.replace(re,"<font size=$1>$2</font>")
re=/(\[list\])(.+?)(\[\/list\])/ig;
strContent=strContent.replace(re,"<UL TYPE=SQUARE>$2<\/UL>");
re=/(\[list=)(A|1)(\])(.+?)(\[\/list\])/ig;
strContent=strContent.replace(re,"<OL TYPE=$2>$4<\/OL>");
re=/(\[\*\])/ig;
strContent=strContent.replace(re,"<LI>");

re=/(\[center\])(.*?)(\[\/center\])/ig
strContent=strContent.replace(re,"<center>$2</center>")

re=/(\[table=(#*[a-z0-9]*),(#*[a-z0-9]*),(#*[a-z0-9]*)\])(.*?)(\[\/table\])/ig
strContent=strContent.replace(re,"<table border=0 cellpadding=5 cellspacing=1 bgcolor=$2><tr><td bgcolor=$3><font color=$4>$5</font></td></tr></table>")

return(strContent);
}
</script>



vbscript:
复制代码 代码如下:

<style>
.CodeSamp {
PADDING-RIGHT: 0.5em; MARGIN-TOP: 1em; PADDING-LEFT: 0.5em; FONT-SIZE: 8p; MARGIN-BOTTOM: 1em; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 0pt; PADDING-TOP: 0.5em; FONT-FAMILY: "Courier New"; BACKGROUND-COLOR: #eeeeee;width: 480px;overflow:hidden;border: 1px solid #888888;
}
textarea {
border-width: 1; border-color: #000000;font-size: 12px;FONT-FAMILY: "Tahoma", "MS Shell Dlg";
}
</style>

<TEXTAREA name=phx cols=65 rows=12>
[i][b][color=blue]blue[/color][/b][/i]

{html}[color=red]te
st[/color]{/html}

{html}{code}te
st{/code}{/html}

{code}{html}te
st{/html}{/code}</textarea>
<br><button onclick=show.innerHTML=UBBCode(phx.value)>转换</button><br>
<div id=show style="border:1 solid skyblue;width=500;font-size: 12px;FONT-FAMILY:
'Tahoma', 'MS Shell Dlg';
"></div>


<script language=vbs>
strIcons = "1" '允许笑脸转换
strSmile="1" '同上
ImgName="em"
picurl="pic/"

function UBBCode(content)
'on error resume next
st=timer
set re=new regexp
re.global=true

re.pattern="\[code\](\r\n)?([\s\S]+?)\[\/code\]"
Set Matches = re.Execute(content) ' Execute search.
dim code()
n=0
if re.test(content) then codeb=true
if codeb then
For Each Match in Matches ' Iterate Matches collection.
redim Preserve code(n)
code(n) =Match.Value
n=n+1
Next
for i=0 to ubound(code)
if code(i)="" then exit for
content=replace(content,code(i),"{code"&i&"}")
next
end if


re.pattern="\[html\](\r\n)?([\s\S]+?)\[\/html\]"
Set Matches = re.Execute(content) ' Execute search.
dim html()
n=0
if re.test(content) then htmlb=true
if htmlb then
For Each Match in Matches ' Iterate Matches collection.
redim Preserve html(n)
html(n) =Match.Value
n=n+1
Next
for i=0 to ubound(html)
if html(i)="" then exit for
content=replace(content,html(i),"{html"&i&"}")
next
end if

content=gmt(content) 'ubb


if codeb then
for i=0 to ubound(code)
if code(i)="" then exit for
tcode=hencode(code(i))
content=replace(content,"{code"&i&"}",tcode)
next
end if
'-----
re.pattern="\[html\](\r\n)?([\s\S]+?)\[\/html\]"
Set Matches = re.Execute(content) ' Execute search.
dim html2()
n=0
if re.test(content) then html2b=true
if html2b then
For Each Match in Matches ' Iterate Matches collection.
redim Preserve html2(n)
html2(n) =Match.Value
n=n+1
Next
for i=0 to ubound(html2)
if html2(i)="" then exit for
content=replace(content,html2(i),"{html2"&i&"}")
next
end if


if htmlb then
for i=0 to ubound(html)
if html(i)="" then exit for
thtml=hencode(html(i))
content=replace(content,"{html"&i&"}",thtml)
next
end if

re.Pattern="(\[code\])(\r\n)?([\s\S]+?)(\[\/code\])"
content=re.Replace(content,"<PRE class=CodeSamp>$3</PRE>")

re.Pattern="(\[html\])(\r\n)?([\s\S]+?)(\[\/html\])"
content=re.Replace(content,"<span><TEXTAREA cols=95 rows=12>$3</TEXTAREA><br><INPUT onclick=runCode() type=button value=运行代码>[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]</span>")

if html2b then
for i=0 to ubound(html2)
if html2(i)="" then exit for
thtml2=html2(i)
content=replace(content,"{html2"&i&"}",thtml2)
next
end if

UBBCode=content
msgbox "转换共耗时 "&formatnumber((timer-st)*1000,2)&" ms"
end function

function hencode(fString) '简单模拟server.htmlencode ASP中不用这个
fString = replace(fString,"&","&")
fString = replace(fString,">",">")
fString = replace(fString,"<","<")
hencode=fString
end function

function DvbbsHtmlAn(fString)

if not isnull(fString) then
fString=hencode(fString)
fString = Replace(fString, CHR(9), " ") 'Tab
fString = Replace(fString, CHR(34), """) '"
fString = Replace(fString, CHR(39), "'") ''
fString = Replace(fString, CHR(13), "") '回车是一个13+10
fString = Replace(fString, CHR(10) & CHR(10), "<P>")' '
fString = Replace(fString, CHR(10), "<BR>")
fString = Replace(fString, CHR(32), " ") ' 空格
DvbbsHtmlAn = fString
end if
end function

function gmt(strContent)

strContent=DvbbsHtmlAn(strContent)
dim re
Set re=new RegExp
re.IgnoreCase =true
re.Global=True

re.Pattern="(\[IMG\])(.*?)(\[\/IMG\])"
strContent=re.Replace(strContent,"<a href=$2 target=_blank><IMG SRC=""$2"" border=0 alt=按此在新窗口浏览图片 onload=""javascript:if(this.width>screen.width-333)this.width=screen.width-333"" galleryImg=no></a>")

if Not UserSign or (UserSign and UserImgCode=1) then
re.Pattern="\[DIR=*([0-9]*),*([0-9]*)\](.*?)\[\/DIR]"
strContent=re.Replace(strContent,"<object classid=clsid:166B1BCA-3F9C-11CF-8075-444553540000 codebase=http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=7,0,2,0 width=$1 height=$2><param name=src value=$3><embed src=$3 pluginspage=http://www.macromedia.com/shockwave/download/ width=$1 height=$2></embed></object>")
re.Pattern="\[QT=*([0-9]*),*([0-9]*)\](.*?)\[\/QT]"
strContent=re.Replace(strContent,"<embed src=$3 width=$1 height=$2 autoplay=true loop=false controller=true playeveryframe=false cache=false scale=TOFIT bgcolor=#000000 kioskmode=false targetcache=false pluginspage=http://www.apple.com/quicktime/>")
re.Pattern="\[MP=*([0-9]*),*([0-9]*)\](.*?)\[\/MP]"
strContent=re.Replace(strContent,"<object align=middle classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 class=OBJECT id=MediaPlayer width=$1 height=$2 ><param name=ShowStatusBar value=-1><param name=Filename value=$3><embed type=application/x-oleobject codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 flename=mp src=$3 width=$1 height=$2></embed></object>")
re.Pattern="\[RM=*([0-9]*),*([0-9]*)\](.*?)\[\/RM]"
strContent=re.Replace(strContent,"<OBJECT classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA class=OBJECT id=RAOCX width=$1 height=$2><PARAM NAME=SRC VALUE=$3><PARAM NAME=CONSOLE VALUE=Clip1><PARAM NAME=CONTROLS VALUE=imagewindow><PARAM NAME=AUTOSTART VALUE=true></OBJECT><br><OBJECT classid=CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA height=32 id=video2 width=$1><PARAM NAME=SRC VALUE=$3><PARAM NAME=AUTOSTART VALUE=-1><PARAM NAME=CONTROLS VALUE=controlpanel><PARAM NAME=CONSOLE VALUE=Clip1></OBJECT>")
end if

re.Pattern="(\[FLASH\])(.*?)(\[\/FLASH\])"
strContent= re.Replace(strContent,"<OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=500 height=400><PARAM NAME=movie VALUE=""$2""><PARAM NAME=quality VALUE=high><embed src=""$2"" quality=high pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width=500 height=400>$2</embed></OBJECT>")
re.Pattern="(\[FLASH=*([0-9]*),*([0-9]*)\])(.*?)(\[\/FLASH\])"
strContent= re.Replace(strContent,"<a href=""$4"" TARGET=_blank><IMG SRC=pic/swf.gif border=0 alt=点击开新窗口欣赏该FLASH动画!> [全屏欣赏]</a><br><br><OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=$2 height=$3><PARAM NAME=movie VALUE=""$4""><PARAM NAME=quality VALUE=high><param name=menu value=false><embed src=""$4"" quality=high menu=false pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width=$2 height=$3>$4</embed></OBJECT>")

re.Pattern="(\[UPLOAD=gif\])(.*?)(\[\/UPLOAD\])"
strContent= re.Replace(strContent,"<br><IMG SRC="""&picurl&"gif.gif"" border=0>此主题相关图片如下:<br><A HREF=""$2"" TARGET=_blank><IMG SRC=""$2"" border=0 alt=按此在新窗口浏览图片 onload=""javascript:if(this.width>screen.width-333)this.width=screen.width-333""></A>")
re.Pattern="(\[UPLOAD=jpg\])(.*?)(\[\/UPLOAD\])"
strContent= re.Replace(strContent,"<br><IMG SRC="""&picurl&"jpg.gif"" border=0>此主题相关图片如下:<br><A HREF=""$2"" TARGET=_blank><IMG SRC=""$2"" border=0 alt=按此在新窗口浏览图片 onload=""javascript:if(this.width>screen.width-333)this.width=screen.width-333""></A>")
re.Pattern="(\[UPLOAD=bmp\])(.*?)(\[\/UPLOAD\])"
strContent= re.Replace(strContent,"<br><IMG SRC="""&picurl&"bmp.gif"" border=0>此主题相关图片如下:<br><A HREF=""$2"" TARGET=_blank><IMG SRC=""$2"" border=0 alt=按此在新窗口浏览图片 onload=""javascript:if(this.width>screen.width-333)this.width=screen.width-333""></A>")

re.Pattern="(\[UPLOAD=(.[^\[]*)\])(.*?)(\[\/UPLOAD\])"
strContent= re.Replace(strContent,"<br><IMG SRC="""&picurl&"$2.gif"" border=0> <a href=""$3"">点击浏览该文件</a>")

re.Pattern="(\[URL\])(.*?)(\[\/URL\])"
strContent= re.Replace(strContent,"<A HREF=""$2"" TARGET=_blank>$2</A>")
re.Pattern="(\[URL=(.[^\[]*)\])(.*?)(\[\/URL\])"
strContent= re.Replace(strContent,"<A HREF=""$2"" TARGET=_blank>$3</A>")

re.Pattern="(\[EMAIL\])(.*?)(\[\/EMAIL\])"
strContent= re.Replace(strContent,"<img align=absmiddle src=pic/email1.gif><A HREF=""mailto:$2"">$2</A>")
re.Pattern="(\[EMAIL=(.[^\[]*)\])(.*?)(\[\/EMAIL\])"
strContent= re.Replace(strContent,"<img align=absmiddle src=pic/email1.gif><A HREF=""mailto:$2"" TARGET=_blank>$3</A>")

re.Pattern = "^(http://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "(http://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)$"
strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "(<BR>|<P>)(http://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)(<BR>|<P>)"
strContent = re.Replace(strContent,"$1<img align=absmiddle src=pic/url.gif><a target=_blank href=$2>$2</a>$3")
re.Pattern = "^(ftp://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "(ftp://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)$"
strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "[^>=""](ftp://[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "^(rtsp://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "(rtsp://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)$"
strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "[^>=""](rtsp://[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "^(mms://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "(mms://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)$"
strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "[^>=""](mms://[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src=pic/url.gif><a target=_blank href=$1>$1</a>")

if strIcons = "1" then '笑脸转换
re.Pattern="(\["&ImgName&"(.*?)\])"
strContent=re.Replace(strContent,"<img src="&picurl&ImgName&"$2.gif border=0 align=middle>")
end if

if strSmile = "1" then '笑脸转换
re.Pattern="(\[s(\d{1,2})\])"
strContent=re.Replace(strContent,"<img src=smile/face$2.gif border=0 align=middle>")
end if


re.Pattern="(\[color=(.[^\[]*)\])(.*?)(\[\/color\])"
strContent=re.Replace(strContent,"<font color=$2 style=""font-size:"&FontSize&"pt;line-height:"&FontHeight&"pt"">$3</font>")
re.Pattern="(\[face=(.[^\[]*)\])(.*?)(\[\/face\])"
strContent=re.Replace(strContent,"<font face=$2 style=""font-size:"&FontSize&"pt;line-height:"&FontHeight&"pt"">$3</font>")
re.Pattern="(\[align=(.[^\[]*)\])(.*?)(\[\/align\])"
strContent=re.Replace(strContent,"<div align=$2>$3</div>")
'循环转换quote
re.Pattern="(\[QUOTE\])(.*?)(\[\/QUOTE\])"
while (instr(strContent,"[quote]")>0 and instr(strContent,"[/quote]")>0)
strContent=re.Replace(strContent,"<blockquote>引用:<hr><span>$2</span><hr></blockquote>")
wend
re.Pattern="(\[fly\])(.*?)(\[\/fly\])"
strContent=re.Replace(strContent,"<marquee width=90% behavior=alternate scrollamount=3>$2</marquee>")
re.Pattern="(\[move\])(.*?)(\[\/move\])"
strContent=re.Replace(strContent,"<MARQUEE scrollamount=3>$2</marquee>")
re.Pattern="\[GLOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\](.*?)\[\/GLOW]"
strContent=re.Replace(strContent,"<table width=$1 style=""filter:glow(color=$2, strength=$3)"">$4</table>")
re.Pattern="\[SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\](.*?)\[\/SHADOW]"
strContent=re.Replace(strContent,"<table width=$1 style=""filter:shadow(color=$2, strength=$3)"">$4</table>")

re.Pattern="(\[i\])(.*?)(\[\/i\])"
strContent=re.Replace(strContent,"<i>$2</i>")
re.Pattern="(\[u\])(.*?)(\[\/u\])"
strContent=re.Replace(strContent,"<u>$2</u>")
re.Pattern="(\[b\])(.*?)(\[\/b\])"
strContent=re.Replace(strContent,"<b>$2</b>")

re.Pattern="(\[size=1\])(.*?)(\[\/size\])"
strContent=re.Replace(strContent,"<font size=1 style=""line-height:"&FontHeight&"pt"">$2</font>")
re.Pattern="(\[size=2\])(.*?)(\[\/size\])"
strContent=re.Replace(strContent,"<font size=2 style=""line-height:"&FontHeight&"pt"">$2</font>")
re.Pattern="(\[size=3\])(.*?)(\[\/size\])"
strContent=re.Replace(strContent,"<font size=5 style=""line-height:"&FontHeight&"pt"">$2</font>")
re.Pattern="(\[size=4\])(.*?)(\[\/size\])"
strContent=re.Replace(strContent,"<font size=6 style=""line-height:"&FontHeight&"pt"">$2</font>")
re.Pattern="\[size=([+|-]?[0-7])\](.*?)(\[\/size\])"
strContent=re.Replace(strContent,"<font size=$1 style=""line-height:"&FontHeight&"pt"">$2</font>")

re.Pattern="(\[center\])(.*?)(\[\/center\])"
strContent=re.Replace(strContent,"<center>$2</center>")

re.Pattern="(\[table=(#*[a-z0-9]*),(#*[a-z0-9]*),(#*[a-z0-9]*)\])(.*?)(\[\/table\])"
strContent=re.Replace(strContent,"<table border=0 cellpadding=5 cellspacing=1 bgcolor=$2><tr><td bgcolor=$3><font color=$4>$5</font></td></tr></table>")

'{HTML} start
're.Pattern="(\[html\])(.*?)(\[\/html\])"
'strContent=re.Replace(strContent,"<span><TEXTAREA cols=95 rows=12>$2</TEXTAREA><br><INPUT onclick=runCode() type=button value=运行代码>[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]</span>")

'{/HTML}end


set re=Nothing
gmt=strContent
end function

</script>