Javascript 是否有任何函数可以检查不完整的HTML源代码
在我的网页中,部分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
<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)
}