仅从字符串中提取IP,而仅在标记中提取,忽略其他IP

时间:2017-03-23 00:25:59

标签: javascript string ip pattern-matching match

源文本是这样的,包含 之间的IP,只是看起来像IP-ish的nubmers,但实际上是垃圾,如999.888.777.669

   text_to_parce = "<b>word</b>  <b>192.168.0.1</b> <b>name</b>    999.888.777.669 <b>255.1.1.14<b> <b>address</b>"

我只需要提取那些被标签<b></b>包围的内容来获取此内容:

192.168.0.1
255.1.1.14

我这样做了:

 ip_pattern= /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/gi,
userip_array = text_to_parce .match(ip_pattern).join("\n");`

但它提供了所有数字,包括“虚假”IP,我只需要IP(无字),只需要<b></b>

内的IP

我知道这可能很难,但仍希望能找到帮助......谢谢

1 个答案:

答案 0 :(得分:0)

网络上有很多IP地址正则表,这里有一个例子using one I found

&#13;
&#13;
var text_to_parce = "<b>word</b>  <b>192.168.0.1</b> <b>name</b>    999.888.777.669 <b>255.1.1.14<b> <b>address</b>";

var validIP = /(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/g;

console.log(text_to_parce.match(validIP))
&#13;
&#13;
&#13;

如果您需要确保它包含在<b>标记中,您只需将其添加到正则表达式的两边