当前位置: 首页 > 图文教程 > 网络编程 > 正则表达式 > 关于HTML及UBB标记的闭合

正则表达式
自定义ubb代码,preg_replace()函数的一些代码
eregi_replace()中特殊字符的处理方法
eregi_replace与preg_replace 函数代码的用法比较
JS正则表达式详解[收藏]
[正则表达式]贪婪模式与非贪婪模式
收集的ASP.NET中常用正则表达式
C#正则实现Ubb解析类的代码
利用正则快速找出两个字符串的不同字符
C#中的正则表达式 学习资料
正则表达式中对各字符集编码范围的总结
正则表达式基础教程与说明
正则表达式
asp下正则实现URL自动链接的一个函数
JS:一个匹配日期的正则
JS:正则将首字单词转成大写
正则表达式:过滤<font>和</font>
vbs:把一段文字中指定字符颜色变成红色的正则
js:校验IPv6地址的正则表达式
vbs:一段比较精简的代码实现取得字符串的"字节"数
vbs:能算出一个字符在一字段里共出现有几次的函数

正则表达式 中的 关于HTML及UBB标记的闭合


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 63 ::
收藏到网摘: n/a

代码还有待完善:
复制代码 代码如下:
<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>