正则表达式备忘单

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是对第一个捕获组的反向引用;匹配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

参考资料和工具

在线工具

文档