我需要一个可靠的Javascript库/函数来检查HTML片段是否有效,我可以从我的代码中调用。例如,应该检查打开的标签和引号是否关闭,嵌套是否正确等。
我不希望验证失败,因为某些东西不是100%的标准(但是将会工作)。
解决方法
更新:这个答案是有限的 – 请看下面的编辑。
扩大@ 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>')
返回false。
checkHTML('<a>hell<b>o</b></a>')
返回true。
编辑:由于@Quentin在下面注意到,由于各种原因,这是非常严格的:即使关闭标记对于该标签是可选的,浏览器通常会修复添加省略的结束标签。例如:
<p>one para <p>second para
…被认为是有效的(因为Ps被允许忽略关闭标签),但是checkHTML将返回false。浏览器也会使标签案例正常化,并改变空格。在决定使用这种方法时,您应该了解这些限制。
原文地址:https://www.jb51.cc/html/233519.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。