关于HTML及UBB标记的闭合
代码还有待完善:
复制代码 代码如下:
<script type="text/javascript"> // Close HTML Tags -------------------------------------------- function closeHTML(str){ var arrTags=["span","font","b","u","i","h1","h2","h3","h4","h5","h6","p","li","ul","table","div"]; for(var i=0;i<arrTags.length;i++){ var intOpen=0; var intClose=0; var re=new RegExp("\\<"+arrTags[i]+"( [^\\<\\>]+|)\\>","ig"); var arrMatch=str.match(re); if(arrMatch!=null) intOpen=arrMatch.length; re=new RegExp("\\<\\/"+arrTags[i]+"\\>","ig"); arrMatch=str.match(re); if(arrMatch!=null) intClose=arrMatch.length; for(var j=0;j<intOpen-intClose;j++){ str+="</"+arrTags[i]+">"; } /*for(var j=(intOpen-intClose-1);j>=0;j--){ str+="</"+arrTags[i]+">"; }*/ } return str; } // Close UBB Tags -------------------------------------------- function closeUBB(str){ var arrTags=["code","quote","list","color","align","font","size","b"]; for(var i=0;i<arrTags.length;i++){ var intOpen=0; var intClose=0; var re=new RegExp("\\["+arrTags[i]+"(=[^\\[\\]]+|)\\]","ig"); var arrMatch=str.match(re); if(arrMatch!=null) intOpen=arrMatch.length; re=new RegExp("\\[\\/"+arrTags[i]+"\\]","ig"); arrMatch=str.match(re); if(arrMatch!=null) intClose=arrMatch.length; for(var j=0;j<intOpen-intClose;j++){ str+="[/"+arrTags[i]+"]"; } } return str; } alert(closeHTML("正常:<div class='testBox'><ul><li><b>加粗</b><span>字体哈哈")); alert(closeHTML("有错:<div class='testBox'><p><ul><li><b>加粗</b><span>字体哈哈")); </script>