搜索

首页  >  问答  >  正文

javascript - 求一套有关于IP地址的JS正则!

例如想要匹配这种

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]/
扔个三星炸死你扔个三星炸死你2793 天前830

全部回复(4)我来回复

  • PHP中文网

    PHP中文网2017-07-05 10:40:27


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

    回复
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-05 10:40:27

    ^((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])|)$

    回复
    0
  • 漂亮男人

    漂亮男人2017-07-05 10:40:27

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

    回复
    0
  • 为情所困

    为情所困2017-07-05 10:40:27

    你可以直接在网上找到一个匹配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])$^(([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|$)或者

    (?^|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如果不添加分隔符,则

      也会被匹配
    🎜

    回复
    0
  • 取消回复