一個 IPv4 位址
符合一個 IPv4 位址。兩端都錨住了,整個字串合上才算通過。沒有擷取群組。
表示式
/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)$/- 比對範圍
- 整個字串
- 擷取群組
- 0
- 在第一個例子裡抓到的部分
- 192.168.0.1
自己試一試
隨便輸入一段文字,這個式子抓到的部分就會標示出來。全部在你的瀏覽器裡執行,不會送往任何地方。
192.168.0.1
符合 1 處
符合的例子
- 192.168.0.1
- 255.255.255.255
- 0.0.0.0
不符合的例子
- 256.1.1.1
- 1.2.3
- 01.2.3.4
同一類的其他式子
^[^\s@]+@[^\s@.]+(?:\.[^\s@.]+)+$一個電子郵件位址^https?://[^\s/$.?#][^\s]*$一個網址^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$一個網域名稱^(?:[0-9a-f]{1,4}:){7}[0-9a-f]{1,4}$不省略寫全的 IPv6 位址^(?:[0-9a-f]{2}[:-]){5}[0-9a-f]{2}$一個 MAC 位址^(?:6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]?\d{1,4})$一個連接埠號^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$一個 UUID^#(?:[0-9a-f]{3}|[0-9a-f]{6})$十六進位色碼怎麼看這一頁
- 兩端加上 ^ 和 $,整個字串就必須合上;不加,比對落在文中任何位置都行。用來做輸入檢查的式子,一定要加錨。
- 圓括號 ( ) 會把括住的部分擷取下來。只是想分組的話寫成 (?: ),後面各組的編號才不會往後挪。
- 這裡的每個式子都拿它自己的例子跑過。不過「長得像電子郵件」和「真有這個信箱」始終是兩回事。
- 開放式重複層層巢狀(比如 (a+)+)時,遇到某些輸入耗時會爆炸式增長。把別人的式子貼進程式前,先找找有沒有這種形狀。
常見問題
Q. 符合一個 IPv4 位址的正規表示式是什麼?
^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)$。
Q. 哪些字串能符合?
像 192.168.0.1 這樣的文字能符合,像 256.1.1.1 這樣的不能。
Q. 必須整個字串都符合嗎?
是的。它被 ^ 和 $ 括住,只有整串合上才算通過。
Q. 抓到的內容怎麼用?
沒有擷取群組,所以只會回傳整段比對結果(match[0])。只需要其中一部分的話,把那一段用圓括號括起來。