您现在的位置是:网站首页> 编程资料编程资料

pjblog的ubbcodeasp文件_正则表达式_

2023-05-25 521人已围观

简介 pjblog的ubbcodeasp文件_正则表达式_

复制代码 代码如下:

<%
'===========PBlog2 UBB代码转换代码==========
'      Author:PuterJam
'         Copryright PBlog2
'         Update: 2005-12-29
'===========================================
Function UBBCode(ByVal strContent,DisSM,DisUBB,DisIMG,AutoURL,AutoKEY)
 If isEmpty(strContent) Or isNull(strContent) Then
        Exit Function
 Else
  Dim re, strMatchs, strMatch, rndID,tmpStr1,tmpStr2,tmpStr3,tmpStr4
  Set re=new RegExp
  re.IgnoreCase =True
  re.Global=True
  IF AutoURL=1 Then
   re.Pattern="([^=\]][\s]*?|^)(http|https|rstp|ftp|mms|ed2k)://([A-Za-z0-9\.\/=\?%\-_~`@':+!]*)"
   Set strMatchs=re.Execute(strContent)
   For Each strMatch in strMatchs
    tmpStr1=strMatch.SubMatches(0)
    tmpStr2=strMatch.SubMatches(1)
    tmpStr3=checkURL(strMatch.SubMatches(2))
    strContent=replace(strContent,strMatch.Value,tmpStr1&""&tmpStr2&"://"&tmpStr3&"",1,-1,0)
   Next
   're.Pattern="(^|\s)(www\.\S+)"
   'strContent=re.Replace(strContent,"$1$2")
  End IF

  IF Not DisUBB=1 Then
   IF Not DisIMG=1 Then
             re.Pattern="(\[img\])(.[^\]]*)\[\/img\]"
     Set strMatchs=re.Execute(strContent)
     For Each strMatch in strMatchs
      tmpStr1=(strMatch.SubMatches(1))
      strContent=replace(strContent,strMatch.Value,"",1,-1,0)
     Next

             re.Pattern="\[img=(left|right|center|absmiddle|)\](.[^\]]*)(\[\/img\])"
     Set strMatchs=re.Execute(strContent)
     For Each strMatch in strMatchs
      tmpStr1=strMatch.SubMatches(0)
      tmpStr2=checkURL(strMatch.SubMatches(1))
      strContent=replace(strContent,strMatch.Value,"",1,-1,0)
     Next

             re.Pattern="\[img=(\d*|),(\d*|)\](.[^\]]*)\[\/img\]"
     Set strMatchs=re.Execute(strContent)
     For Each strMatch in strMatchs
      tmpStr1=strMatch.SubMatches(0)
      tmpStr2=strMatch.SubMatches(1)
      tmpStr3=checkURL(strMatch.SubMatches(2))
      strContent=replace(strContent,strMatch.Value,"",1,-1,0)
     Next

             re.Pattern="\[img=(\d*|),(\d*|),(left|right|center|absmiddle|)\](.[^\]]*)(\[\/img\])"
     Set strMatchs=re.Execute(strContent)
     For Each strMatch in strMatchs
      tmpStr1=strMatch.SubMatches(0)
      tmpStr2=strMatch.SubMatches(1)
      tmpStr3=strMatch.SubMatches(2)
      tmpStr4=checkURL(strMatch.SubMatches(3))
      strContent=replace(strContent,strMatch.Value,"",1,-1,0)
     Next
    else
             re.Pattern="(\[img\])(.[^\]]*)\[\/img\]"
     Set strMatchs=re.Execute(strContent)
     For Each strMatch in strMatchs
      tmpStr1=checkURL(strMatch.SubMatches(1))
      strContent=replace(strContent,strMatch.Value,"查看图片",1,-1,0)
     Next

             re.Pattern="\[img=(left|right|center|absmiddle|)\](.[^\]]*)(\[\/img\])"
     Set strMatchs=re.Execute(strContent)
     For Each strMatch in strMatchs
      tmpStr1=strMatch.SubMatches(0)
      tmpStr2=checkURL(strMatch.SubMatches(1))
      strContent=replace(strContent,strMatch.Value,"查看图片",1,-1,0)
     Next

             re.Pattern="\[img=(\d*|),(\d*|)\](.[^\]]*)\[\/img\]"
     Set strMatchs=re.Execute(strContent)
     For Each strMatch in strMatchs
      tmpStr1=strMatch.SubMatches(0)
      tmpStr2=strMatch.SubMatches(1)
      tmpStr3=checkURL(strMatch.SubMatches(2))
      strContent=replace(strContent,strMatch.Value,"查看图片",1,-1,0)
     Next

             re.Pattern="\[img=(\d*|),(\d*|),(left|right|center|absmiddle|)\](.[^\]]*)(\[\/img\])"
     Set strMatchs=re.Execute(strContent)
     For Each strMatch in strMatchs
      tmpStr1=strMatch.SubMatches(0)
      tmpStr2=strMatch.SubMatches(1)
      tmpStr3=strMatch.SubMatches(2)
      tmpStr4=checkURL(strMatch.SubMatches(3))
      strContent=replace(strContent,strMatch.Value,"查看图片",1,-1,0)
     Next    
   End IF

'-----------多媒体标签----------------
   re.Pattern="\[(swf|wma|wmv|rm|ra|qt)(=\d*?|)(,\d*?|)\]([^<>]*?)\[\/(swf|wma|wmv|rm|ra|qt)\]"
      Set strMatchs=re.Execute(strContent)
      dim strType,strWidth,strHeight,strSRC,TitleText
  For Each strMatch in strMatchs
   RAndomize
     strType=strMatch.SubMatches(0)
     if strType="swf" then
      TitleText="Flash动画"
     elseif strType="wma" then
      TitleText="播放音频文件"
     elseif strType="wmv" then
      TitleText="播放视频文件"  
     elseif strType="rm" then
      TitleText="播放real视频流文件"  
     elseif strType="ra" then
      TitleText="播放real音频流文件"  
     elseif strType="qt" then
      TitleText="播放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=checkURL(strMatch.SubMatches(3))
   rndID="temp"&Int(100000 * Rnd)
   strContent= Replace(strContent,strMatch.Value,"

"&TitleText&"
")
  Next
  Set strMatchs=nothing
  re.Pattern="(\[mid\])(.[^\]]*)\[\/mid\]"
  strContent= re.Replace(strContent,"") 
'-----------常规标签----------------
   re.Pattern = "\[url=(.[^\]]*)\](.[^\[]*)\[\/url]"
   Set strMatchs=re.Execute(strContent)
   For Each strMatch in strMatchs
    tmpStr1=checkURL(strMatch.SubMatches(0))
    tmpStr2=strMatch.SubMatches(1)
    strContent=replace(strContent,strMatch.Value,""&tmpStr2&"",1,-1,0)
   Next

   re.Pattern = "\[url](.[^\[]*)\[\/url]"
   Set strMatchs=re.Execute(strContent)
   For Each strMatch in strMatchs
    tmpStr1=checkURL(strMatch.SubMatches(0))
    strContent=replace(strContent,strMatch.Value,""&tmpStr1&"",1,-1,0)
   Next

   re.Pattern = "\[ed2k=([^\r]*?)\]([^\r]*?)\[\/ed2k]"
   Set strMatchs=re.Execute(strContent)
   For Each strMatch in strMatchs
    tmpStr1=checkURL(strMatch.SubMatches(0))
    tmpStr2=strMatch.SubMatches(1)
    strContent=replace(strContent,strMatch.Value,""&tmpStr2&"",1,-1,0)
   Next

   re.Pattern = "\[ed2k]([^\r]*?)\[\/ed2k]"
   Set strMatchs=re.Execute(strContent)
   For Each strMatch in strMatchs
    tmpStr1=checkURL(strMatch.SubMatches(0))
    strContent=replace(strContent,strMatch.Value,""&tmpStr1&"",1,-1,0)
   Next

   re.Pattern = "\[email=(.[^\]]*)\](.[^\[]*)\[\/email]"
   Set strMatchs=re.Execute(strContent)
   For Each strMatch in strMatchs
    tmpStr1=checkURL(strMatch.SubMatches(0))
    tmpStr2=strMatch.SubMatches(1)
    strContent=replace(strContent,strMatch.Value,""&tmpStr2&"",1,-1,0)
   Next

   
   re.Pattern = "\[email](.[^\[]*)\[\/email]"
   Set strMatchs=re.Execute(strContent)
   For Each strMatch in strMatchs
    tmpStr1=checkURL(strMatch.SubMatches(0))
    strContent=replace(strContent,strMatch.Value,""&tmpStr1&"",1,-1,0)
   Next

'-----------字体格式----------------
      re.Pattern="\[align=(\w{4,

-六神源码网