正则详解IP地址

本文讲解的是IP4的匹配方式,IP6同理

//首先写一个IP
var str = '255.199.99.0'

说白了,ip地址分四块,每一块范围就是0-255,但正则不懂数学,我们只能按照每一位进行判断

首先罗列所有的可能出现的条件

A.所有的两位数  /\d{1,2}/

B.第一位为1的所有三位数 /1\d{2}/

C.以2开头,第二位为0-4的所有三位数  /2[0-4]\d/

D.以25开头第三位范围为0-5  /25[0-5]/

接下来先拼凑出0-255的验证

var IP = /(\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])/

然后每一块后面有一个点于是乎前面3块都加点,后面再copy一份没有点的

var IP = /((((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])))/

看似完美了吧,那你就太天真啦,我们发现当匹配256的时候仍然为TRUE,是因为我们没有做边界限制,

于是进一步改造,成为了下面的最终样子

var IP = /^(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.)(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){2}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))$/

写正则主要就是要把所有的边界条件都要找到,然后一步一步的书写,希望对大家有帮助, 谢谢阅读

猜你喜欢

转载自blog.csdn.net/qq_36465347/article/details/89260345