javascript - 求一套有关于IP地址的JS正则!
问题描述
例如想要匹配这种
22.22.22.0/1633.33.33.1/24
这样的正则改怎么写?求指教
这样好像可以
/((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)/[0-2][0-4]/
问题解答
回答1:《正则表达式必知必会》里面给的。自己写的话容易有纰漏
回答2:^((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])|)$
回答3:new RegExp(/([0-9]{1,3}.{1}){3}[0-9]{1,3}/)
回答4:你可以直接在网上找到一个匹配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也会被匹配
相关文章:
1. javascript - 引入 simditor,但是显示标签,这个怎么解决。2. angular.js - 学习ng路由模块遇到点击链接到锚点时URL后面多出个#!是怎么回事3. angular.js - 如何让图片遇到父容器边缘自动换行显示,不会溢出4. angular.js - 关于ui-sref地址栏缺省的问题5. angular.js - 全站用的angular,但是像下面描述的这样强交互的功能用angular该用什么思路去做呢?6. android - 目前有哪些用Vue.js开发移动App的方案?7. index.php错误,求指点8. 只有一条数据9. 当前访问路由未定义或不匹配,怎么解决这个问题10. 横屏滑动的怎么做