正則表達式備忘單

JavaScript 正則表達式速查表,包含所有常用的正則表達式語法和範例

普通字元

表達式JavaScript 正則表達式速查表,包含所有常用的正則表達式語法和範例
. or [^\n\r]除換行符或回車符之外的任何字元
[A-Za-z]字母
[a-z]小寫字母
[A-Z]大寫字母
\d or [0-9]數字
\D or [^0-9]非數字
_底線
\w or [A-Za-z0-9_]字母、數字或底線
\W or [^A-Za-z0-9_]\w的逆
\S\s的逆

空白字元

表達式JavaScript 正則表達式速查表,包含所有常用的正則表達式語法和範例
空格
\t製表符
\n換行符
\r回車符
\s空格、製表符、換行符或回車符

字元集

將字元集視為方括號內的單個字元的「OR」運算。在開頭[後使用^來「否定」字元集。在字元集中,.表示文字句點。

表達式JavaScript 正則表達式速查表,包含所有常用的正則表達式語法和範例
[xyz]x、y或z
[^xyz]既不是x,也不是y也不是z
[1-3]1、2或3
[^1-3]既不是1,也不是2也不是3

需要轉義的字元

字元集之外

表達式JavaScript 正則表達式速查表,包含所有常用的正則表達式語法和範例
\.句點
\^插入符號
\$美元符號
\|管道
\\反斜線
\/正斜線
\(左括號
\)右括號
\[左方括號
\]右方括號
\{左大括號
\}右大括號

字元集內

表達式JavaScript 正則表達式速查表,包含所有常用的正則表達式語法和範例
\\反斜線
\]右方括號

量詞

量詞位於要量化的表達式之後。

表達式JavaScript 正則表達式速查表,包含所有常用的正則表達式語法和範例
{2}恰好2個
{2,}至少2個
{2,7}至少2個但不超過7個
*0個或多個
+1個或多個
?恰好0個或1個

邊界

表達式JavaScript 正則表達式速查表,包含所有常用的正則表達式語法和範例
^字串開始
$字串結束
\b單詞邊界

單詞邊界匹配的工作原理:

  • 在字串開始處,如果第一個字元是\w
  • 在字串內兩個相鄰字元之間,如果第一個字元是\w且第二個字元是\W
  • 在字串結束處,如果最後一個字元是\w

匹配

表達式JavaScript 正則表達式速查表,包含所有常用的正則表達式語法和範例
foo|bar匹配foo或bar
foo(?=bar)如果foo在bar之前則匹配foo
foo(?!bar)如果foo不在bar之前則匹配foo
(?<=bar)foo如果foo在bar之後則匹配foo
(?<!bar)foo如果foo不在bar之後則匹配foo

分組和捕獲

捕獲組僅與以下方法相關:string.match(regexp)、string.matchAll(regexp)、string.replace(regexp, callback)。\N是對第N個捕獲組的反向引用。捕獲組從1開始編號。

表達式JavaScript 正則表達式速查表,包含所有常用的正則表達式語法和範例
(foo)捕獲組;匹配並捕獲foo
(?:foo)非捕獲組;匹配foo但不捕獲foo
(foo)bar\1\1是對第1個捕獲組的反向引用;匹配foobarfoo

複雜範例

電子郵件驗證

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

驗證標準電子郵件地址格式,支援多個網域和子網域

匹配: user@example.com, test.email+tag@domain.co.uk
不匹配: invalid.email, @domain.com, user@

電話號碼

^(\+?1[-.\s]?)?\(?([0-9]{3})\)?[-.\s]?([0-9]{3})[-.\s]?([0-9]{4})$

匹配美國電話號碼格式,支援各種分隔符和可選的國家代碼

匹配: (555) 123-4567, +1-555-123-4567, 555.123.4567
不匹配: 123-456, 555-123-45678

密碼強度

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

要求至少8個字元,包含大寫、小寫、數字和特殊字元

匹配: MyPass123!, SecureP@ss1
不匹配: password, 12345678, MyPassword

URL提取

https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)

匹配HTTP/HTTPS URL,支援子網域、路徑和查詢參數

匹配: https://www.example.com, http://sub.domain.org/path
不匹配: example.com, ftp://server.com

日期格式

^(0[1-9]|1[0-2])\/(0[1-9]|[12][0-9]|3[01])\/\d{4}$

匹配MM/DD/YYYY日期格式,包含月份和日期驗證

匹配: 12/25/2023, 01/01/2024, 06/15/2023
不匹配: 13/25/2023, 1/1/2023, 2023-12-25

信用卡

^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|3[0-9]{13}|6(?:011|5[0-9]{2})[0-9]{12})$

驗證主要信用卡品牌格式(Visa、MasterCard、Amex等)

匹配: 4111111111111111, 5555555555554444
不匹配: 1234567890123456, 411111111111111

參考資料和工具

線上工具

文件