我需要一个可靠的 JavaScript 库/函数来检查我可以从代码中调用的 HTML 片段是否有效。例如,它应该检查打开的标签和引号是否闭合、嵌套是否正确等。
我不希望验证失败,因为某些东西不是 100% 标准(但无论如何都会起作用)。
Update:这个答案是有限的 - 请参阅下面的编辑。
扩展@kolink的答案,我使用:
var checkHTML = function(html) {
var doc = document.createElement('div');
doc.innerHTML = html;
return ( doc.innerHTML === html );
}
即,我们使用 HTML 创建一个临时 div。为此,浏览器将基于 HTML 字符串创建一棵 DOM 树,其中可能涉及结束标签等。
将 div 的 HTML 内容与原始 HTML 进行比较将告诉我们浏览器是否需要更改任何内容。
checkHTML('<a>hell<b>o</b>')
返回假。
checkHTML('<a>hell<b>o</b></a>')
返回真。
Edit:正如@Quentin 下面指出的,这是过于严格出于多种原因:浏览器通常会修复省略的结束标记,即使结束标记对于该标记来说是可选的。例如:
<p>one para
<p>second para
...被认为是有效的(因为 Ps 可以省略结束标签)但是checkHTML
将返回 false。浏览器还将标准化标签大小写,并更改空白。在决定使用此方法时,您应该了解这些限制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)