ip的正则表达式 完美版

时间:2023-03-10 07:27:02
ip的正则表达式 完美版

IP地址的长度为32位2进制,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用英文句点“.”隔开。例如:IP地址为10.0.0.100。

分析IP地址的每组数特点:百位,十位,个位。 
分开考虑如下:,

1. 没有百位,没有十位,0-9;

2. 没有百位,十位1-9,个位0-9  // 十位不为0,所以127.000.00.1,是通不过的

3. 百位是1,十位0-9,个位0-9

4. 百位是2, 十位0-4,个位0-9

5. 百位是2,十位是5,个位0-5

正则如下:

^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$

/^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/.test('255.255.255.255') //true

/^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/.test('255.255.10.00') //false