请问怎么样判断一Html标签是否闭合
一段文本其中包含有Html标签,怎么才能判断其中的每一个Html标签是否是闭合的呢?如果不是闭合的自动加上相应的结束标签,应该怎么做呢?
例: <div id= "tst "> adsaaaaaaaaaaaaaaaaaa <font> sfddddddddddddddd </font> sfddddd <b> sfdddddddd
这么一段字符,怎么样得出 <b> 和 <div> 没有闭合,并在最后加上 </b> 和 </div> 啊?
谢谢,各位高手帮忙解答一下。
[解决办法]
以前有人为过,未得正解,顶一下,沙发
[解决办法]
判断闭合不难。
根据集合,找到一个标签,就去尝试对比是否有闭合对应的标签。
自动添加困难,因为无法知道添加在哪里。
[解决办法]
用正则判断 <b <div 的个数 和 </b </div 的个数比较 相等就闭合了
不过没检查是否正确对应 呵呵
[解决办法]
固不固定 不都是在字符串中么 用正则怎么不行呢?
[解决办法]
这个正则比较麻烦,还存在着嵌套的关系,要把层次理出来,并不只是贪婪那么简单了
[解决办法]
<html>
<head>
</head>
<body>
<div id= "code ">
<font> <strong> sdfds
</div>
<div id= "temp " style= "display:none; ">
</div>
<script type= "text/javascript ">
document.getElementById( "temp ").innerHTML=document.getElementById( "code ").innerHTML;
alert(document.getElementById( "temp ").innerHTML);
</script>
</body>
</html>
[解决办法]
这个问题我 回答过一次 你看一下大家意见
http://community.csdn.net/Expert/TopicView3.asp?id=5556330
自动闭合是吧?
教你一个偷懒的办法,用一个用户看不见的div,临时生成一个也可以,令其innerHTML=你的代码;然后再取这个div的innerHTML看看,你会很高兴地发现浏览器已经给你把标签配好对了。
来源是:
http://bbs.blueidea.com/viewthread.php?tid=2709194
[解决办法]
允不允许交叉
<b>
<div>
</b>
</div>
[解决办法]
难题
[解决办法]
不太好办!up
[解决办法]
.Net的正则引擎不是支持平衡组吗 想到一个办法 不过不太好 :(
不懂.Net 只能给出伪代码了
正则reg:
^[^ <> ]*(?: <(?!/)(? <o> [^\s <> ]+)(?:\s[^ <> ]*)?(?:(? <-o> /> )|> )[^ <> ]*|(? <-o> </\k <o> > [^ <> ]*))*(?(o)|(?!))$;
字符串str:
<div id= "tst "> adsaaaaaaaaaaaaaaaaaa <font> sfddddddddddddddd </font> sfddddd <b> sfdddddddd ";
while (匹配成功)
{
str = Regex.Replace(str, reg, "$0 </${o}> ") <--- 一次只能补一个 -_-#
}