LOADING

JavaScript 正则表达式


学习、验证正则表达式的推荐网站:


https://regex101.com/

常用说明


a?


代表出现没有或者1次。

a*


代表a出现0次,或者多次

a+


代表a出现1次以上

.


指任意字符,但是不包括换行符

^a


排除字符a

a{b}


代表a需要出现b次才能匹配

a{b,c}


代表a需要出现b-c次这个范围内,才能匹配

a{b,}


代表a需要出现b次以上,才能匹配

[ab]


[]的作用是集合,用于匹配多个相同的类型,例如 /[ab]+/ 就代表ab或者a或者b需要连续出现1次以上。

(ab)


ab为一个组(Group),在代码中可以对匹配的值(Match)和各个组(Group)进行拓展操作

a (cat|dog)


匹配 a cat a dog ,cat或者dog前面必须带一个a

a cat|dog


匹配 a cat 或者 dog

[a-zA-Z0-9]


匹配 a-z、A-Z的字符和0-9的数字

元字符


\d


数字字符 \d+ 匹配一个以上的数字

\D


非数字字符

\w


单词字符 单词 数字 下划线即英文字符

\W


非单词字符

\s


空白符 包含空格和换行符

\S


非空白字符

\b


单词的边界 单词的开头或结尾 单词与符号之前的边界

\B


非单词的边界 符号与符号 单词与单词的边界

特殊判断用法


注意:括号是固定格式,不能少

(?=pattern)


正向先行断言,表示匹配位置后面必须紧跟着满足 pattern 的字符串,但不包括这个字符串在匹配结果中。

(?!pattern)


负向先行断言,表示匹配位置后面不能紧跟着满足 pattern 的字符串,也不包括这个字符串在匹配结果中。

(?<=pattern)


正向后行断言,表示匹配位置前面必须是满足 pattern 的字符串,但不包括这个字符串在匹配结果中。

(?<!pattern)


负向后行断言,表示匹配位置前面不能是满足 pattern 的字符串,也不包括这个字符串在匹配结果中。

(?:pattern)


非捕获型分组,表示将 pattern 包含在一个分组中,但不把这个分组的匹配结果保存到分组编号中。这个分组通常用于表示可选的或重复的子表达式,或者是限制量词的作用范围,而不需要把它们的匹配结果单独提取出来。