欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

关于HTML及UBB标记的闭合

程序员文章站 2022-06-22 14:34:33
代码还有待完善: 复制代码 代码如下:   // clos...
代码还有待完善:
复制代码 代码如下:
<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>