javascript - 求一套有關(guān)于IP地址的JS正則!
問(wèn)題描述
例如想要匹配這種
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]/
問(wèn)題解答
回答1:《正則表達(dá)式必知必會(huì)》里面給的。自己寫的話容易有紕漏
^((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:你可以直接在網(wǎng)上找到一個(gè)匹配IP的正則,但是網(wǎng)上的也不一定對(duì),也不好做驗(yàn)證,那么我們就自己來(lái)寫一個(gè)。
有個(gè)數(shù)字范圍生成正則的工具。【工具可以網(wǎng)上找】ip規(guī)則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]).
重復(fù)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|$)
分割符號(hào)根據(jù)實(shí)際情況更換
如果不添加分隔符,則33.33.33.1/24會(huì)拼匹配成33.33.33.1/2或者 99933.33.33.1/24也會(huì)被匹配
相關(guān)文章:
1. 淺談vue生命周期共有幾個(gè)階段?分別是什么?2. macos - mac下docker如何設(shè)置代理3. java - Spring使用@Autowired失效但是getBean()可以執(zhí)行成功4. css3 - flex box舊版可以實(shí)現(xiàn)新版中的wrap換行嗎?5. java - hibernate正向工程生成一對(duì)多關(guān)系模型無(wú)報(bào)錯(cuò),但是只生成了一張表6. Java EE 6:JSF與Servlet + JSP我應(yīng)該學(xué)習(xí)JSF嗎?7. javascript - js正則匹配小括號(hào)中的內(nèi)容8. javascript - webpack 怎么在壓縮時(shí)候刪除換行9. index.php錯(cuò)誤,求指點(diǎn)10. 微信公眾號(hào)在線生成二維碼帶參數(shù)怎么搞?
