正则
修饰符
| 修饰符 | 含义 |
|---|---|
| g | 全局匹配(找所有)。默认情况下正则只会匹配第一个满足条件的字符 |
| i | 忽略大小写 |
ts
const regex = /jpg|png|gif/g修饰符可以一起使用:
ts
const re = /apples/gi;普通字符
直接书写一个普通字符将会匹配书写的字符
ts
/abc/ // 匹配 "abc"单个规则
一个规则匹配一个字符
字符集合
[]表示任选[]中的一个字符
ts
/[abc]/ // a 或 b 或 c
/[a-z]/ // 小写字母
/[0-9]/ // 数字
/[^0-9]/ // 非数字元字符
需要\的原因是需要进行转义
| 符号 | 含义 |
|---|---|
| . | 任意字符(不含换行) |
| \d | 数字(0-9) |
| \D | 非数字 |
| \w | 匹配单词字符,等价于[A-Za-z0-9_] |
| \W | 匹配非单词字符,等价于[^A-Za-z0-9_] |
| \s | 空白字符 |
| \S | 非空白 |
连续的规则
多个规则可以连续书写,用于匹配多个字符
ts
/\d[A-Z]/或
若规则是或的关系,可以使用|分隔
ts
/[a-z]|[A-Z]/若多个规则之间存在|,他会理解左右两边是连续的规则
ts
/\d[A-Z]|[a-z]\d/- 规则1:
\d[A-Z] - 规则2:
[a-z]\d
量词
量词永远只修饰它左边紧挨着的一个原子(最小单位)
| 符号 | 含义 |
|---|---|
* | 0 次或多次,等价于{0,} |
+ | 1 次或多次,等价于{1,} |
? | 0 次或 1 次,等价于{0,1} |
{n} | 正好 n 次 |
{n,} | 至少 n 次 |
{n,m} | n 到 m 次 |
ts
/\d+/ // 一个或多个数字
/\d{11}/ // 11 位数字边界符
| 符号 | 含义 |
|---|---|
| ^ | 字符串开始 |
| $ | 字符串结束 |
| \b | 单词边界 |
| \B | 非单词边界 |
分组
分组 用 ()可以从连续的规则中选择一部分当成一个整体
分组后,量词、或、引用都可以作用在“一整段”
ts
/ab+/ // a + 多个 b
/(ab)+/ // ab 重复多次