参考-《js高级程序设计第三版》
1 基础概念
正则语法: let expression = /pattern/flags;
pattent: 正则规则
flags: 标志
// 匹配字符串中所有'ab'实例 let pattern1 = /ab/g;
1.1 标志(flags):每个正则表达式可以带一个或多个标志,标明正则表达式的行为,正则表达式的匹配模式支持以下3个标志
g: 表示全局模式,匹配字符串所有的字符
i: 不区分大小写
m: 表示多行,在到达一行文本末尾时还会继续查找下一行是否存在与模式匹配的项
1.2 [] 方括号用于查找某个范围内的字符
表达式 | 描述 |
---|---|
[abc] | 查找方括号之间的任何字符。 |
[^abc] | 查找任何不在方括号之间的字符。 |
[0-9] | 查找任何从 0 至 9 的数字。 |
[a-z] | 查找任何从小写 a 到小写 z 的字符。 |
[A-Z] | 查找任何从大写 A 到大写 Z 的字符。 |
[A-z] | 查找任何从大写 A 到小写 z 的字符。 |
[adgk] | 查找给定集合内的任何字符。 |
[^adgk] | 查找给定集合外的任何字符。 |
(red|blue|green) | 查找任何指定的选项。 |
1.3 正则表达式中使用的元字符必须转义--元字符在正在表达式中都有一种或多种特殊的用途,如果再匹配字符串中包含这些字符,必须转义。正则中的元字符串包括:
() [] {} ^ $ | ? * + .
// 匹配第一个‘bat’或‘cat’,不区分大小写 let pattern2 = /[bc]at/i; // 匹配所有已'at'结尾的3个字符串组合,不区分大小写 let pattern3 = /.at/gi; //匹配第一个'[bc]at',不区分大小写 let pattern4 = /[bc]at/i; //匹配所有以'.at',不区分大小写 let pattern5 = /.at/gi;
元字符 | 描述 |
---|---|
. | 查找单个字符,除了换行和行结束符。 |
w | 查找单词字符。 |
W | 查找非单词字符。 |
d | 查找数字。 |
D | 查找非数字字符。 |
s | 查找空白字符。 |
S | 查找非空白字符。 |
匹配单词边界。 | |
B | 匹配非单词边界。 |