更换IP地址?

时间:2017-08-06 03:07:46

标签: node.js

我想知道的事情

我想知道如何检测IP地址,然后将其替换为另一个字符串,可能类似于" censored"或者" nah"。

为什么吗

主要是因为我想检查一个IP地址,如果它被检测为一个地址。

1 个答案:

答案 0 :(得分:0)

您可以使用 String.prototype.replace()正则表达式

  

replace()方法返回一个新字符串,其中一个或所有匹配的模式由替换替换。模式可以是字符串或RegExp,替换可以是字符串或要为每个匹配调用的函数。

     

注意:原始字符串将保持不变。

     

语法    str.replace(regexp | substr,newSubstr | function)

如果你需要更好地理解如何处理replace()方法,你有很多来源,这里有一个:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

只需按照该教程(或任何类似的)了解如何使用replace(),然后继续阅读。

<强> REGEX

现在你知道如何使用正则表达式在匹配点中创建覆盖的字符串,你需要正确的正则表达式来匹配你的场景。

IP正则表达式的一个很好的起点就是这个简化的:

\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b

它非常简单易用,但即使我们正确处理了IP语法,我们也会匹配0到999之间的任何数字,因此它可以匹配不一致的地址(例如out-范围内的IP,如192.168.1.999,将匹配)。 如果您对正则表达式没有信心,这是一个很好的起点。

更准确,更难以理解的正则表达式如下:

\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b

这解决了以前的问题并且行动得相当好。

以下是您需要的所有内容,请注意,这可以解决许多情况,只需要将正则表达式替换为正确的正则表达式,如果您需要匹配其他内容。

最后但并非最不重要的是,只需记住总是加倍反斜杠,因为您需要在Java代码中正确解析,所以最后一个是

 \\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b