JavaScript中正則表達式驗證Ip地址


轉載自 https://blog.csdn.net/u012806692/article/details/50635590

原理

之前一直不太會寫正則表達式,很多要用到正則表達式的都直接百度,像上次要用正則表達式驗證是否是合法的ip地址,然后就上網找,結果就是沒找到一個對的,今天就為大家貢獻一下,寫個對的,並做一下解析。(建議大家還是去看書去規范的學一下,不要直接百度,不然都是坑)。

iPv4的ip地址都是(1255).(0255).(0255).(0255)的格式

我這里的寫法沒有考慮兩種情況,一是172.00.01.3這種,前面以零開頭,或者多個零的這種情況,二是本網絡地址,如果想支持,可根據下面的解釋進行擴展。
下面給出相對應的正則表達式:

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

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

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

+"(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$"

上面的一個不漏就是正確的驗證ip的正則表達式,簡單的講解一下

\d表示0~9的任何一個數字

{2}表示正好出現兩次

[0-4]表示0~4的任何一個數字

| 的意思是或者

( )上面的括號不能少,是為了提取匹配的字符串,表達式中有幾個()就表示有幾個相應的匹配字符串

1\d{2}的意思就是100~199之間的任意一個數字

2[0-4]\d的意思是200~249之間的任意一個數字

25[0-5]的意思是250~255之間的任意一個數字

[1-9]\d的意思是10~99之間的任意一個數字

[1-9])的意思是1~9之間的任意一個數字

\.的意思是.點要轉義(特殊字符類似,@都要加\轉義)

說到這里應該已經很清楚的知道了上面的正則表達式的意思。

JS代碼

/*ip地址 0.0.0.0~255.255.255.255*/
export function validateIP(str) {
	const re =
		/^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[0-9])\.((1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.){2}(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/
	return re.test(str)
}

可以使用此函數來進行表單的ip地址驗證


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM