希望正则的效果如下
192.168.0.1 // true
192.168.0.1,192.168.0.2 // true
192.168.0.1/24 // true
192.168.0.1,192.168.0.2/12 // true
192.168.0.1, // false
192.168.0.1/240 // false
🙏谢谢了!!
希望正则的效果如下
192.168.0.1 // true
192.168.0.1,192.168.0.2 // true
192.168.0.1/24 // true
192.168.0.1,192.168.0.2/12 // true
192.168.0.1, // false
192.168.0.1/240 // false
🙏谢谢了!!
好像写不了正则,你这个规则不统一啊
// 处理逗号分隔含空项
str.spilt(",")
.some(e=>e==="")
return false
// 处理路由数字大于两位数
str.match(/\\[0-9]\,/g)
.some(e=>e.length>4)
return false
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
匹配一小段需要这么长:
25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d
匹配后面的掩码部分
\/(?:3[0-2]|[1-2]?\d|)
光一个 IP 的正则表达式就这么长(带掩码)
(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}(?:\/(?:3[0-2]|[1-2]?\d|))?
还要匹配列表,得再翻一倍
^(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}(?:\/(?:3[0-2]|[1-2]?\d|))?(?:,(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}(?:\/(?:3[0-2]|[1-2]?\d|))?)*$
或者不用正则表达式,写段程序来判断