当前位置: 移动技术网 > IT编程>开发语言>正则 > 关于HTML及UBB标记的闭合

关于HTML及UBB标记的闭合

2017年12月12日  | 移动技术网IT编程  | 我要评论
代码还有待完善:
复制代码 代码如下:
<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> 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网