- 程序代码
- FunctioncloseUBB(strContent)
- '*************************************
- '自动闭合UBB
- '*************************************
- DimarrTags,i,OpenPos,ClosePos,re,strMatchs,j,Match
- Setre=NewRegExp'申明re对象
- re.IgnoreCase=True'设置是否区分字符大小写
- re.Global=True'设置全局可用性
- arrTags=Array("code","quote","list","color","align","font","size","b","i","u","html")'建立数组,存储相关需要检测是否闭合的标签
- Fori=0ToUBound(arrTags)'循环对数组里的每一个元素进行检测
- OpenPos=0'初始化当前标签开始标记的个数
- ClosePos=0'初始化当前标签结束标记的个数
- re.Pattern="\["+arrTags(i)+"(=[^\[\]]+|)\]"'开始分别正则判断开始与结束标记的个数
- SetstrMatchs=re.Execute(strContent)
- ForEachMatchinstrMatchs
- OpenPosOpenPos=OpenPos+1
- Next
- re.Pattern="\[/"+arrTags(i)+"\]"
- SetstrMatchs=re.Execute(strContent)
- ForEachMatchinstrMatchs
- ClosePosClosePos=ClosePos+1
- Next
- Forj=1ToOpenPos-ClosePos'当开始与结束标记数量不一致时,闭合当前标签
- strContentstrContent=strContent+"[/"+arrTags(i)+"]"
- Next
- Next
- closeUBB=strContent
- Setre=Nothing
- EndFunction
- 程序代码程序代码
- FunctioncloseHTML(strContent)
- '*************************************
- '自动闭合HTML
- '*************************************
- DimarrTags,i,OpenPos,ClosePos,re,strMatchs,j,Match
- Setre=NewRegExp
- re.IgnoreCase=True
- re.Global=True
- arrTags=Array("p","div","span","table","ul","font","b","u","i","h1","h2","h3","h4","h5","h6")
- Fori=0ToUBound(arrTags)
- OpenPos=0
- ClosePos=0
- re.Pattern="\<"+arrTags(i)+"([^\<\>]+|)\>"
- SetstrMatchs=re.Execute(strContent)
- ForEachMatchinstrMatchs
- OpenPosOpenPos=OpenPos+1
- Next
- re.Pattern="\</"+arrTags(i)+"\>"
- SetstrMatchs=re.Execute(strContent)
- ForEachMatchinstrMatchs
- ClosePosClosePos=ClosePos+1
- Next
- Forj=1ToOpenPos-ClosePos
- strContentstrContent=strContent+"</"+arrTags(i)+">"
- Next
- Next
- closeHTML=strContent
- Setre=Nothing
- EndFunction