您所拥有的正则表达式已经有几个问题:
首先,它包含点。在正则表达式中,点表示“匹配任何字符”,您只需要匹配实际的点。为此,您需要对其进行转义,因此请在圆点前面加上反斜杠。
其次,但是您要匹配每个部分中的任何三个数字。这意味着您将匹配0到999之间的任何数字,其中显然包含许多无效的IP地址数字。
这可以通过使数字匹配更加复杂来解决。该站点上还有其他答案可以解释如何执行此操作,但是坦率地说,这不值得付出努力-
以我的观点,您最好将字符串用点分隔开,然后将四个块验证为数字整数范围-即:
if(block >= 0 && block <= 255) {....}希望能有所帮助。



