代码改变世界

自动闭合HTML/ubb标签函数

2011-05-18 14:32  qinuo  阅读(248)  评论(1编辑  收藏  举报


 学asp的应该知道,自动闭合html/ubb变迁函数有些烦人的,我现在虽然是做电话录音卡销售工作的,虽然那么长时间没看书了,不过我嘛上学时对程序都有些敏感,所以写下这个程序共大家参考一下:

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

   其实语言这东西学习就像儿时学习语言一样,要对他充满好奇,这样才不会感觉枯燥无味!