常见的正则表达式
精确字符串匹配
- 使用
^
和 $
锚点分别匹配字符串的开头和结尾。
- 在两个锚点之间添加要匹配的字符串。
const regexp = /^abc$/;
// 其中 'abc' 是要精确匹配的字符串
匹配空字符串
- 使用
^
和 $
锚点分别匹配字符串的开头和结尾。
- 在两个锚点之间不添加任何字符,以匹配空字符串。
const regexp = /^$/;
匹配空白字符序列
- 使用
\s
元字符序列匹配任何空白字符,包括空格、制表符、换行符等。
- 使用
+
量词匹配前一个字符的一个或多个出现。
- 添加全局标志 (
g
) 以匹配字符串中的所有匹配项。
const regexp = /\s+/g;
- 使用
\w
模式匹配字母字符,使用\s
模式匹配空白字符。
- 使用
[]
来创建一个字符类,其中包含字母字符和空白字符。
- 添加全局标志(
g
)以匹配字符串中的所有出现。
- 添加忽略大小写标志(
i
)以匹配大写和小写字符。
const regexp = /[a-zA-Z\s]/gi;
匹配换行符
- 根据环境的不同,换行符可以用不同的方式表示。
- 使用
\r
字符匹配回车符,使用\n
字符匹配换行符,使用\r\n
序列匹配回车符后跟换行符。
- 添加全局(
g
)和多行(m
)标志以匹配字符串中模式的所有出现。
const regexp = /\r|\n|\r\n/gm;
匹配非单词字符
- 使用否定(
^
)来匹配任何不是单词字符(\w
)或空白字符(\s
)的字符。
- 添加全局标志(
g
)以匹配字符串中的所有出现。
- 添加忽略大小写标志(
i
)以匹配大写和小写字符。
const regexp = /[^\w\s]/gi;
匹配字母数字、破折号和连字符
- 使用
^
和$
锚点分别匹配字符串的开头和结尾。
- 使用
a-zA-Z0-9-
模式匹配任何字母数字字符、破折号和连字符。
- 使用
+
量词匹配前一个字符的一个或多个出现。
- 在匹配URL片段时特别有用。
const regexp = /^[a-zA-Z0-9-_]+$/;
匹配字母和空白字符
- 使用
^
和$
锚点分别匹配字符串的开头和结尾。
- 使用
a-zA-Z\s
模式匹配任何字母和空白字符。
- 使用
+
量词匹配前面模式的一个或多个出现。
const regexp = /^[A-Za-z\s]+$/;
不包含某个模式
- 使用
^
和$
锚点分别匹配字符串的开头和结尾。
- 使用负向先行断言(
?!
)匹配任何不后跟要排除的模式的字符。
- 添加全局标志(
g
)以匹配字符串中所有出现的模式。
- 要确保不包含多个模式,请使用
|
字符将它们分隔开。
const regexp = /^((?!(abc|bcd)).)*$/;
// 其中'abc'和'bcd'是要排除的模式
方括号内的文本
- 使用
\(
和\)
字符分别匹配开括号和闭括号。
- 在两者之间使用捕获组,并排除闭括号字符。
- 使用
+
量词根据需要匹配一个或多个字符。
- 添加全局标志(
g
)以匹配字符串中所有出现的模式。
- 将
\(
和\)
替换为\[
和\]
以匹配方括号,并用\{
和\}
替换以匹配花括号。
const regexp = /\(([^)]+)\)/g;
验证GUID/UUID
- 使用
^
和$
锚点分别匹配字符串的开头和结尾。
- 使用数字字符范围和量词分别验证GUID/UUID的每个段。
const regexp = /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/;
验证日期格式 (DD/MM/YYYY)
- 使用
^
和 $
锚点分别匹配字符串的开头和结尾。
- 使用数字字符范围和量词分别验证日期的每个部分。
- 更改部分和分隔符的顺序以匹配不同的格式。
const regexp = /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/;
将字符串分成 n 大小的块
- 使用
.{1,n}
量词匹配任意字符出现 1
到 n
次。
- 添加全局标志 (
g
) 来匹配字符串中模式的所有出现。
const regexp = /.{1,2}/g;
// 其中 '2' 是每个块的字符数