Skip to content

正则

修饰符

修饰符含义
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 重复多次