一尘不染

javascript正则表达式以检查IP地址

javascript

我有几个IP地址,例如:

  1. 115.42.150.37
  2. 115.42.150.38
  3. 115.42.150.50

如果要搜索所有3个ip地址,应该写哪种类型的正则表达式?例如,如果我这样做115.42.150.*(我将能够搜索所有3个IP地址)

我现在可以做的事情是这样的:/[0-9]{1-3}\.[0-9]{1-3}\.[0-9]{1-3}\.[0-9]{1-3}/但是它似乎不能很好地工作。

谢谢。


阅读 443

收藏
2020-05-01

共1个答案

一尘不染

您所拥有的正则表达式已经有几个问题:

首先,它包含点。在正则表达式中,点表示“匹配任何字符”,您只需要匹配实际的点。为此,您需要对其进行转义,因此请在圆点前面加上反斜杠。

其次,但是您要匹配每个部分中的任何三个数字。这意味着您将匹配0到999之间的任何数字,其中显然包含许多无效的IP地址数字。

这可以通过使数字匹配更加复杂来解决。该站点上还有其他答案可以解释如何执行此操作,但是坦率地说,这不值得付出努力-
以我的观点,您最好将字符串用点分隔开,然后将四个块验证为数字整数范围-即:

if(block >= 0 && block <= 255) {....}

希望能有所帮助。

2020-05-01