0

在我的网页中,部分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 标记,但不知道它是否有效。

谢谢

4

2 回答 2

1

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

  • 误报率为零:如果输入有效,则将被接受。
  • 假阴性率非常低:如果您在随机点终止一个有效的 HTML,它以标签结尾的机会就足够低了,验证它是同一个标签有助于进一步。
  • 假阴性率有时为零:如果在您的特定情况下不能嵌套最外层元素(htmlbody两者都适用,即使tables 现在很少嵌套),那么您肯定会注意到无效输入。

请注意,将结果分配为 ​​aninnerHTML并将其读回可能会产生误报。浏览器可以自由地重新排列 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)
}
于 2013-02-19T13:22:50.447 回答
0

您可以使用 Html 验证器。您正确指定 DOCTYPE,它会发现任何无效的内容。

  1. HTML 验证器 W3c
  2. HTML 整洁
于 2013-02-19T12:55:35.053 回答