IPv4正则
IP地址形如: XXX.XXX.XXX.XXX
4段*8位,每段都是.分割,每段之间都是0-255之间的十进制数组(2的8次方个数值)
约束条件: 1.三个.分割 2.每段数值在0-255之间
每段数值限定
| 取值区间 | 正则写法 | 可以合并的写法 | 可以合并的写法 | 可以合并的写法 |
|---|---|---|---|---|
| 0-9 | \d | [1-9]?|\d | ( 1\d{2} | [1-9]?\d ) | (25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))) |
| 10-99 | [1-9]\d | |||
| 100-199 | 1\d{2} | - | ||
| 200-249 | 2[0-4]\d | - | - | |
| 250-255 | 25[0-5] | - | - |
正则表示
((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))).){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))
限定以数值结尾 在正则表达式后加$
代码测试
const rule = new RegExp(/((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))$/);
rule.test('0.0.0.0.'); // false
rule.test('0.33.2.50'); // true