Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有任何函数可以检查不完整的HTML源代码_Javascript_Jquery_Html - Fatal编程技术网

Javascript 是否有任何函数可以检查不完整的HTML源代码

Javascript 是否有任何函数可以检查不完整的HTML源代码,javascript,jquery,html,Javascript,Jquery,Html,在我的网页中,部分html源代码由另一方提供,我发现有时返回的源代码不完整,例如: <table> <tr valign='top'> <td width=95> <img src='test.jpg'> </td> <td> <h2><a style='font-size: 13px' href='ts

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


谢谢

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


  • 检查响应是否以相同的标记开始和结束似乎是一个很好的启发:

    • 假阳性率为零:如果输入有效,将被接受
    • 误报率非常低:如果在任意点终止一个有效的HTML,它以标记结束的几率就足够低了,验证它是否是同一个标记有助于进一步提高
    • 误报率有时为零:如果最外层的元素不能嵌套在您的特定案例中(
      html
      body
      两者都适用,即使
      现在很少嵌套),那么您肯定会注意到无效输入
    请注意,将结果指定为
    innerHTML
    并将其读回可能会产生误报。浏览器可以自由地重新排列HTML,即使是有效的,只要它认为合适。例如,Internet Explorer喜欢按字母顺序对元素属性排序(出于某种原因)。此外,如果您传递无效的HTML,浏览器也不会抱怨

    用正则表达式的说法:
    ^]*>.$

    if(/^]*>.$/.test(输入)){
    //输入很可能没有被截断
    }否则{
    //输入肯定是无效的
    //(或包含多个顶级元素)
    }
    
    当你说“函数”时,你的意思是可以从JavaScript调用一些东西,作为接受第三方HTML的任何过程的一部分吗?检查第一个标记和最后一个标记(周围没有文本!)有时就足够了,这似乎是一个很好的启发。@T.J.Crowder Yes,类似于JavaScript函数的功能,用于检查我的页面中的HTML源代码,如果代码完整,则将其呈现出来,似乎只有表应该是内容。然后检查源代码是否为
    ^]*>.$
    看起来是一个很好的启发式方法,如果没有嵌套表,则误报率为零。许多完整的源代码被发现无效。这可能不容易自动用作完成检查的服务。
    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)
    }