正規表示式·縮寫的 IPv6 位址

縮寫的 IPv6 位址

符合縮寫的 IPv6 位址。兩端都錨住了,整個字串合上才算通過。擷取群組有 4 個。

表示式
/^([0-9a-fA-F]{1,4}(:[0-9a-fA-F]{1,4})*)?::([0-9a-fA-F]{1,4}(:[0-9a-fA-F]{1,4})*)?$/
比對範圍
整個字串
擷取群組
4
在第一個例子裡抓到的部分
::1

自己試一試

隨便輸入一段文字,這個式子抓到的部分就會標示出來。全部在你的瀏覽器裡執行,不會送往任何地方。

::1

符合 1 處

符合的例子

  • ::1
  • fe80::
  • 2001:db8::1

不符合的例子

  • 192.168.0.1
  • 2001:db8:0:0:0:0:0:1
  • hello

同一類的其他式子

怎麼看這一頁

  • 兩端加上 ^ 和 $,整個字串就必須合上;不加,比對落在文中任何位置都行。用來做輸入檢查的式子,一定要加錨。
  • 圓括號 ( ) 會把括住的部分擷取下來。只是想分組的話寫成 (?: ),後面各組的編號才不會往後挪。
  • 這裡的每個式子都拿它自己的例子跑過。不過「長得像電子郵件」和「真有這個信箱」始終是兩回事。
  • 開放式重複層層巢狀(比如 (a+)+)時,遇到某些輸入耗時會爆炸式增長。把別人的式子貼進程式前,先找找有沒有這種形狀。

常見問題

Q. 符合縮寫的 IPv6 位址的正規表示式是什麼?

^([0-9a-fA-F]{1,4}(:[0-9a-fA-F]{1,4})*)?::([0-9a-fA-F]{1,4}(:[0-9a-fA-F]{1,4})*)?$。

Q. 哪些字串能符合?

像 ::1 這樣的文字能符合,像 192.168.0.1 這樣的不能。

Q. 必須整個字串都符合嗎?

是的。它被 ^ 和 $ 括住,只有整串合上才算通過。

Q. 抓到的內容怎麼用?

有 4 個擷取群組,可以從 match[1] 開始依序取出。