javascript - 求一套有关于IP地址的JS正则!
扔个三星炸死你
扔个三星炸死你 2017-07-05 10:38:27
[JavaScript讨论组]

例如想要匹配这种

22.22.22.0/16
33.33.33.1/24

这样的正则改怎么写?求指教


这样好像可以

/((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)\/[0-2][0-4]/
扔个三星炸死你
扔个三星炸死你

全部回复(4)
PHP中文网


《正则表达式必知必会》里面给的。自己写的话容易有纰漏

过去多啦不再A梦

^((0|1[0-9]{0,2}|2[0-9]{0,1}|20-4|25[0-5]|3-9{0,1}).){3}(0|1[0-9]{0,2}|2[0-9]{0,1}|20-4|25[0-5]|3-9{0,1})(?(/)/([0-9]|1-2|3[0-2])|)$

漂亮男人

new RegExp(/([0-9]{1,3}.{1}){3}[0-9]{1,3}/)

为情所困

你可以直接在网上找到一个匹配IP的正则,但是网上的也不一定对,也不好做验证,那么我们就自己来写一个。

有个数字范围生成正则的工具。【工具可以网上找】
ip规则
0-255.0-255.0-255.0-255/0-32

0-255

([0-9]|[1-8][0-9]|9[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])

0-255.

([0-9]|[1-8][0-9]|9[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.

重复3次

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

再拼接一次0-255

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

0-32

([0-9]|[12][0-9]|3[0-2])

全部拼接

(([0-9]|[1-8][0-9]|9[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-8][0-9]|9[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])

添加首位分隔符

^(([0-9]|[1-8][0-9]|9[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-8][0-9]|9[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$
或者
(?^|\s)(([0-9]|[1-8][0-9]|9[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-8][0-9]|9[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])(?:\s|$)

  • 分割符号根据实际情况更换

  • 如果不添加分隔符,则33.33.33.1/24会拼匹配成33.33.33.1/2或者 99933.33.33.1/24也会被匹配

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号