.
匹配除换行外的任意字符
\d
匹配数字 [0-9]
\D
匹配非数字
\w
匹配字母数字下划线 [a-zA-Z0-9_]
\W
匹配非单词字符
\s
匹配空白符(空格 / 制表 / 换行)
\S
匹配非空白符
\b
匹配单词边界
\B
匹配非单词边界
\n
换行符
\t
制表符
\0
空字符
\x41
十六进制字符(A)
\u4e00
Unicode 中文字符(\u4e00-\u9fa5)
[abc]
匹配 a b c 中的任意一个
[^abc]
匹配除 a b c 外的任意字符
[a-z]
匹配 a 到 z 之间的任意小写字母
[0-9]
匹配任意数字
[a-zA-Z0-9_]
匹配单词字符
*
匹配前一个字符 0 次或多次(等价 {0,})
+
匹配前一个字符 1 次或多次(等价 {1,})
?
匹配前一个字符 0 次或 1 次(等价 {0,1})
{n}
匹配恰好 n 次
{n,}
匹配至少 n 次
{n,m}
匹配 n 到 m 次
*? / +? / ??
懒惰匹配:尽可能少地匹配
(abc)
捕获分组,将 abc 作为一个整体
(?:abc)
非捕获分组,只分组不捕获
(?<name>abc)
命名分组(JS 中为 (?<name>abc))
\1
反向引用第 1 个分组
(?=abc)
正向先行断言:后面必须是 abc
(?!abc)
负向先行断言:后面不能是 abc
(?<=abc)
正向后行断言:前面必须是 abc
(?<!abc)
负向后行断言:前面不能是 abc
a|b
或运算,匹配 a 或 b
^
匹配字符串开头(多行模式匹配行首)
$
匹配字符串结尾(多行模式匹配行尾)
\b
单词边界
/pattern/g
全局匹配,找出所有匹配项
/pattern/i
忽略大小写
/pattern/m
多行模式,^ $ 匹配每行首尾
/pattern/s
点号匹配换行符
/pattern/u
Unicode 模式,正确处理中文 / Emoji
/pattern/y
粘连模式,从 lastIndex 开始匹配
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
邮箱
^1[3-9]\d{9}$
中国大陆手机号
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
日期 yyyy-MM-dd
^((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$
IPv4 地址
^https?:\/\/[^\s/$.?#].[^\s]*$
URL
^\d{17}[\dXx]$
18 位身份证
^[\u4e00-\u9fa5]+$
纯中文
^[a-zA-Z][a-zA-Z0-9_]{4,19}$
用户名(5-20 位字母开头)
^(?=.*[A-Za-z])(?=.*\d).{8,}$
强密码(字母+数字,至少 8 位)
^[0-9a-fA-F]{24}$
MongoDB ObjectId
正则元字符、字符类、量词、分组断言、修饰符全收录,附邮箱、手机号、IP、密码强度等高频实例。配合「正则表达式在线测试」工具边查边练效果更佳。