正则表达式实现UBB代码

分类:网站技术 | lao8发表于 2010-1-22 1:35:00
  1. <%
  2. Function ReplaceTest(patrn,str,replStr)
  3. Dim regEx, str1
  4.  str1=trim(str)
  5.  Set regEx = New RegExp ' 建立正则表达式
  6.  regEx.Pattern = patrn ' 设置模式
  7.  regEx.IgnoreCase = true ' 设置是否区分大小写
  8.  ReplaceTest = regEx.Replace(str1, replStr) ' 作替换
  9.  set regEx=nothing ‘销毁正则表达式对象
  10. End Function
  11. Function UBB(str)
  12.  dim i,temp
  13.  i=1
  14.  temp=""
  15.  do while instr(i,str,"[/"]>=1
  16.    if trim(temp)="" then
  17.     temp=ReplaceTest("(\[i])(\S+)(\[/i])",str,"<i>$2</i>")
  18.    else
  19.     temp=ReplaceTest("(\[i])(\S+)(\[/i])",temp,"<i>$2</i>")
  20.    end if
  21.    temp=ReplaceTest("(\[b])(\S+)(\[/b])",temp,"<b>$2</b>")
  22.    temp=ReplaceTest("(\[big])(\S+)(\[/big])",temp,"<big>$2</big>")
  23.    temp=ReplaceTest("(\[strike])(\S+)(\[/strike])",temp,"<strike>$2</strike>")
  24.    temp=ReplaceTest("(\[sub])(\S+)(\[/sub])",temp,"<sub>$2</sub>")
  25.    temp=ReplaceTest("(\[sup])(\S+)(\[/sup])",temp,"<sup>$2</sup>")
  26.    temp=ReplaceTest("(\[pre])(\S+)(\[/pre])",temp,"<pre>$2</pre>")
  27.    temp=ReplaceTest("(\[u])(\S+)(\[/u])",temp,"<u>$2</u>")
  28.    temp=ReplaceTest("(\[small])(\S+)(\[/small])",temp,"<small>$2</small>")
  29.    temp=ReplaceTest("(\[h1])(\S+)(\[/h1])",temp,"<h1>$2</h1>")
  30.    temp=ReplaceTest("(\[h2])(\S+)(\[/h2])",temp,"<h2>$2</h2>")
  31.    temp=ReplaceTest("(\[h3])(\S+)(\[/h3])",temp,"<h3>$2</h3>")
  32.    temp=ReplaceTest("(\[h4])(\S+)(\[/h4])",temp,"<h4>$2</h4>")
  33.    temp=ReplaceTest("(\[h5])(\S+)(\[/h5])",temp,"<h5>$2</h5>")
  34.    temp=ReplaceTest("(\[h6])(\S+)(\[/h6])",temp,"<h6>$2</h6>")
  35.    temp=ReplaceTest("(\[red])(\S+)(\[/red])",temp,"<font color=red>$2</font>")
  36.    temp=ReplaceTest("(\[email])(\S+)(\[/email])",temp,"<a href=""mailto:$2"" target=_top>$2</a>")
  37.    temp=ReplaceTest("(\[img])(\S+)(\[/img])",temp,"<img src=""$2"">")
  38.    temp=ReplaceTest("(\[url])(\S+)(\[/url])",temp,"<a href=""$2"" target=_top>$2</a>")
  39.    temp=ReplaceTest("(\[#(\S+)])(\S+)(\[/#])",temp,"<font color=$1>$3</font>")
  40.    i=i+1
  41.  loop
  42.  if trim(temp)<>"" then
  43.   UBB=temp
  44.  else
  45.   UBB=str
  46.  end if
  47. end function
  48. %>

输出的时候只要调用 UBB(str)就可以了

收藏到收藏夹

相关"正则表达式 UBB代码"文章


发表见解

username(必填)
email(必填)
website

站内搜索

 

按分类归档

lao8 最新文章: