如果您想扫描节点以检测它们是否有 IP 地址,您可以使用类似...
$("body").text().match(/\d+\.\d+\.\d+\.\d+/g);
这应该返回所有看起来像 IP 地址的东西的列表。您可以删除那些不能是 IPv4 地址的...
ips = ips.filter(function(ip) {
return ip.split(".").every(function(octet, index) {
return octet <= 255 && octet >= 0;
});
});
如果您想要最好的浏览器支持,请交换filter()
并every()
相应地$.grep()
调整。
请注意,这将0.0.0.0
允许255.255.255.255
. 您可能希望其中的一部分有效,因此请进行相应调整。
如果你没有 jQuery,你可以只使用普通的 JavaScript ......
var ips = (function me(node) {
return [].reduce.call(node.childNodes, function (ips, node) {
return ips.concat(({
1: me,
3: function (node) {
return node.data.match(/\d+\.\d+\.\d+\.\d+/g);
}
})[node.nodeType](node) || []);
}, []);
})(document.body);
这基本上遍历了 的后代的每个节点body
,匹配 IP 地址并将它们添加到数组中。