论坛UBB代码 推荐

记念从前贴过多少个ubb代码转换为html格式的代码,昨日读ubb的源代码。所以有了那几个新的本子。注意,这一个本子大概还无法不奇怪使用,详细见注。

记得在此以前贴过叁个ubb代码转变为html格式的代码,前天读ubb的源代码。所以有了那么些新的版本。注意,这些本子也许还无法健康使用,详细见注。
这段代码将用户输入的ubb代码转化为html格式,注意,须要Script Engine
5.0的帮衬(使
用了RegExp对象)
注:pattern中接纳()将精通regexp回想找出到的值,$1是率先个(),别的类推。但$2的
语法并不被5.0版本的vbscript.dll所支撑,笔者反省了和谐机器上的版本(安装过ie
5.5),
察觉vbscript.dll的本子为5.50.4629,最终修改日期为5月14日。该版本援救$1之类的语
法,这些轻巧的革新使regexp的效果逐步与perl的正则表达式邻近
function UBBCode(strContent)
dim objRegExp
Set objRegExp=new RegExp
objRegExp.IgnoreCase =true
objRegExp.Global=True
‘url
objRegExp.Pattern=”([URL])(])”
strContent= objRegExp.Replace(strContent,”<A HREF=””$2″”
TARGET=_blank>$2</A>”)
objRegExp.Pattern=”([URL])(S+?)([/URL])”
strContent= objRegExp.Replace(strContent,”<A HREF=””””
TARGET=_blank>$2</A>”)
’email
objRegExp.Pattern=”([EMAIL])([email protected]+?)([/EMAIL])”
strContent= objRegExp.Replace(strContent,”<A
HREF=””mailto:$2″”>$2</A>”)
objRegExp.Pattern=”([IMG])(S+?)([/IMG])”
strContent=objRegExp.Replace(strContent,”<IMG SRC=””$2″”>”)
objRegExp.Pattern=”([QUOTE])(.+?)([/QUOTE])”
strContent=objRegExp.Replace(strContent,”<BLOCKQUOTE><font
size=1
face=””Verdana,
Arial””>quote:</font><HR>$2<HR></BLOCKQUOTE>”)
objRegExp.Pattern=”([i])(.+?)([/i])”
strContent=objRegExp.Replace(strContent,”<i>$2</i>”)
objRegExp.Pattern=”([b])(.+?)([/b])”
strContent=objRegExp.Replace(strContent,”<b>$2</b>”)
set objRegExp=Nothing
UBBCode=strContent

复制代码 代码如下:

这段代码将用户输入的ubb代码转化为html格式,注意,须求Script Engine
5.0的支持(使
用了RegExp对象)

<%
dim param,smiles  ‘param是UBB标签完全可用的标志 param=full
则统统可用,不然不帮助部分占位大的标签 smiles是不准笑貌调换
function UBBCode(content)
dim n,i
‘on error resume next
set re=new regexp
re.IgnoreCase=true
re.global=true

注:pattern中接纳()将掌握regexp回忆寻找到的值,$1是首先个(),其他类推。但$2的
语法并不被5.0本子的vbscript.dll所协助,作者反省了友好机器上的版本(安装过ie
5.5),
发觉vbscript.dll的版本为5.50.4629,最终修改日期为四月二日。该版本协助$1之类的语
法,这些轻巧的改进使regexp的意义稳步与perl的正则表明式临近

re.pattern=”\[code\](\r\n)?([\s\S]+?)\[\/code\]”
Set Matches = re.Execute(content)
dim code()
n=0
if re.test(content) then codeb=true
if codeb then
  For Each Match in Matches
   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

function UBBCode(strContent)

if param=”full” then
re.pattern=”\[html\](\r\n)?([\s\S]+?)\[\/html\]”
Set Matches = re.Execute(content)
dim html()
n=0
if re.test(content) then htmlb=true
if htmlb then
  For Each Match in Matches
   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
end if
content=gmt(content)    ‘ubb

dim objRegExp
Set objRegExp=new RegExp
objRegExp.IgnoreCase =true
objRegExp.Global=True
‘url
objRegExp.Pattern=”(\[URL\])(http:\/\/\S+?)(\[\/URL\])”
strContent= objRegExp.Replace(strContent,”<A HREF=””$2″”
TARGET=_blank>$2</A>”)
objRegExp.Pattern=”(\[URL\])(\S+?)(\[\/URL\])”
strContent= objRegExp.Replace(strContent,”<A HREF=””””
TARGET=_blank>$2</A>”)

if codeb then
for i=0 to ubound(code)
if code(i)=”” then exit for
tcode=server.htmlencode(code(i))
content=replace(content,”{code”&i&”}”,tcode)
next
end if
‘—–处理[code] 中的[html]
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

’email
objRegExp.Pattern=”(\)(\S+\@\S+?)(\[\/EMAIL\])”
strContent= objRegExp.Replace(strContent,”<A
HREF=””mailto:$2″”>$2</A>”)

if param=”full” then
if htmlb then
for i=0 to ubound(html)
if html(i)=”” then exit for
thtml=server.htmlencode(html(i))
content=replace(content,”{html”&i&”}”,thtml)
next
 end if
end if

objRegExp.Pattern=”(\[IMG\])(\S+?)(\[\/IMG\])”
strContent=objRegExp.Replace(strContent,”<IMG SRC=””$2″”>”)

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

objRegExp.Pattern=”(\[QUOTE\])(.+?)(\[\/QUOTE\])”
strContent=objRegExp.Replace(strContent,”<BLOCKQUOTE><font
size=1
face=””Verdana,
Arial””>quote:</font><HR>$2<HR></BLOCKQUOTE>”)

if param=”full” then
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=运行代码> <input onclick=copyCode() type=button
value=复制代码>[Ctrl+A 全部抉择
提醒:你可先修改部分代码,再按运维]</span>”)
end if

objRegExp.Pattern=”(\[i\])(.+?)(\[\/i\])”
strContent=objRegExp.Replace(strContent,”<i>$2</i>”)

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

objRegExp.Pattern=”(\[b\])(.+?)(\[\/b\])”
strContent=objRegExp.Replace(strContent,”<b>$2</b>”)
set objRegExp=Nothing
UBBCode=strContent

UBBCode=content
end function

end function

function gmt(strContent)

原版的倒车程序,摘自freeware版本的ubb论坛,可到
下载(Perl CGI方式)

 strContent=HTMLfilter(strContent) 

sub UBBCode {

 dim re
 Set re=new RegExp
 re.IgnoreCase =true
 re.Global=True

my $ThePost = shift;
$ThePost =~ s/(\[URL\])(http:\/\/\S+?)(\[\/URL\])/ <A
HREF=”$2″
TARGET=_blank>$2<\/A> /isg;

if param=”full” then
 if not smiles then                       ‘笑颜转变

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图