正则表达式备忘录
JavaScript 创建正则表达式有两种方式:
- 使用正则表达式字面量:
var re = /abc/;
- 调用 RegExp 对象的构造函数:
var re = new RegExp("abc");
什么时候使用构造函数?
当正则表达式的模式会变发生改变,或者需要从其他地方得到时(例如用户输入),适合使用构造函数的方式。
匹配字符表
\
:将其后的特殊字符转义为字面量^
:匹配输入的开始$
:匹配输入的结束*
:匹配前一个表达式 0 次或者多次,等价于 {0,}+
:匹配前一个表达式 1 次或多次,等价于 {1,}?
:匹配前一个表达式 0 次或者 1 次,等价于 {0,1}.
:匹配除了换行符(\n)之外的任何单个字符(x)
:匹配 ‘x’ 并记住匹配项(?:x)
:匹配 ‘x’ 但不记住匹配项x(?=y)
: 匹配 ‘x’ 并且 ‘x’ 后面跟着 ‘y’,也叫作正向肯定查找x(?!y)
:匹配 ‘x’ 并且 ‘x’ 后面不跟着 ‘y’,也叫作正向否定查找x | y
:匹配 ‘x’ 或者 'y'{n}
:匹配前一个字符 n 次{n, m}
:匹配前一个字符最少 n 次[xyz]
:匹配括号中的任意一个字符,可以使用-
指定范围[^xyz]
: 匹配任何不在括号中的字符\b
:匹配一个词的边界\B
:匹配非单词边界\d
:匹配一个数字\D
:匹配一个非数字字符,等价于 [^0-9]\f
:匹配一个换页符\n
:匹配一个换行符\r
: 匹配一个回车符\s
:匹配一个空白字符\S
:匹配一个非空白字符\t
:匹配一个水平制表符\v
: 匹配一个垂直制表符\w
:匹配一个单字字符,等价于 [A-Za-z0-9_]\W
:匹配一个非单字字符,等价于 [^a-za-z0-9_]