是否有任何功能来检查不完整的HTML源代码

时间:2013-02-19 12:54:07

标签: javascript jquery html

在我的网页中,部分html源代码由其他方提供,我发现有时返回源代码不完整,例如:

<table>
    <tr valign='top'>
        <td width=95>
            <img src='test.jpg'>
        </td>
        <td>
            <h2><a style='font-size: 13px' href='tset.html'>test</a></h2>
            <h1><a href='test.html'>test</a></li>

我想询问是否有任何函数来检查HTML源代码是否不完整?

我有一个想法是使用substr()来检查第一个和最后一个HTML标记,但不知道它是否有效。

由于

2 个答案:

答案 0 :(得分:1)

检查响应是否以相同的标签开始和结束似乎是一个足够好的启发式方法:

  • 误报率为零:如果输入有效,则会被接受。
  • 误报率非常低:如果您在随机点终止有效的HTML,那么它以标签结束的可能性就足够低了,并且验证它是相同的标签会有所帮助。
  • 假阴性率有时为零:如果最外层元素不能嵌套在您的特定情况下(htmlbody同时适用,即使table现在很少嵌套,那么你肯定会注意到输入无效。

请注意,将结果指定为innerHTML并将其读回可能会产生误报。浏览器可以自由地重新排列HTML,即使它是合适的,也是有效的。例如,Internet Explorer喜欢按字母顺序排序元素属性(出于某种原因)。此外,如果您传递无效的HTML

,浏览器也不会抱怨

正则表达式:^<(\w+)[^>]*>.*<\/\1>$

if(/^<(\w+)[^>]*>.*<\/\1>$/.test(input)){
  // the input is most likely not truncated
}else{
  // the input is definitely not valid
  // (or it contains multiple top-level elements)
}

答案 1 :(得分:0)

您可以使用Html Validators。你正确指定了DOCTYPE,它会找到任何无效的东西。

  1. HTML Validators W3c
  2. HTML Tidy