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:《正則表達式必知必會》里面給的。自己寫的話容易有紕漏
^((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 - js中遞歸與for循環同時發生的時候,代碼的執行順序是怎樣的?2. python - linux怎么在每天的凌晨2點執行一次這個log.py文件3. php如何獲取訪問者路由器的mac地址4. android - 鍵盤遮擋RecyclerView5. 如何分別在Windows下用Winform項模板+C#,在MacOSX下用Cocos Application項目模板+Objective-C實現一個制作游戲的空的黑窗口?6. javascript - jQuery each 方法第三個參數args 如何解釋?7. javascript - 在 vue里面用import引入js文件,結果為undefined8. java - new + 類名,一定需要申明一個對象嗎?9. javascript - vue-resource中如何設置全局的timeout?10. 小程序怎么加外鏈,語句怎么寫!求救新手,開文檔沒發現
