检查HTML代码段是否适用于Javascript

我需要一个可靠的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。浏览器也会使标签案例正常化,并改变空格。在决定使用这种方法时,您应该了解这些限制。

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些