1 普通字符
字符 | 描述 |
---|
[ABC] | 匹配ABC中的一个字符 |
[^ABC] | 匹配不是ABC中的一个字符 |
[A-Z] | 匹配A-Z中的一个字符 |
[\s] | \s 是匹配所有空白符,包括换行,一个字符 |
[\S] | \S 是匹配所有非空白符,不包括换行,一个字符 |
[\w] | 匹配字母、数字、下划线。等价于 [A-Za-z0-9_],一个字符 |
[\d] | 匹配数字,一个字符 |
2 非打印字符
字符 | 描述 |
---|
\f | 换页符 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\v | 垂直制表符 |
3 特殊字符
字符 | 描述 |
---|
^ | 匹配输入字符串的开始位置 |
$ | 匹配输入字符串的结束位置。 例:/^a[\d]+b$/ 能匹配 a123b; |
\b | 匹配一个单词边界,即字与空格间的位置。例: /Cha\b/ 能匹配 bbCha;/\bCha/ 能匹配 Chabb; |
\B | 非单词边界匹配。 |
() | 标记一个子表达式的开始和结束位置 |
[] | 标记一个中括号表达式的开始和结束位置 |
l | 指明两项之间的一个选择,相当于或运算 |
4 限定符
字符 | 描述 |
---|
* | 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。 |
+ | 匹配前面的子表达式一次或多次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。 |
? | 匹配前面的子表达式零次或一次。例如,“do(es)?” 可以匹配 “do” 、 “does” 中的 “does” 、 “doxy” 中的 “do” 。? 等价于 {0,1}。 |
{n} | n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。 |
{n,} | n 是一个非负整数。至少匹配n 次。例如,‘o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。‘o{1,}’ 等价于 ‘o+’。‘o{0,}’ 则等价于 ‘o*’。 |
{n,m} | m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,“o{1,3}” 将匹配 “fooooood” 中的前三个 o。 |
5 修饰符
字符 | 描述 |
---|
i | ignore - 不区分大小写 |
g | global - 全局匹配 |
m | multi line - 多行匹配 |
s | 特殊字符圆点 . 中包含换行符 \n |
示例:
var str="Google runoob taobao RUNoob";
var n1=str.match(/runoob/g);
var n2=str.match(/runoob/gi);
var str="Google runoob taobao runoob";
var n1=str.match(/runoob/);
var n2=str.match(/runoob/g);
var str="runoobgoogle\ntaobao\nrunoobweibo";
var n1=str.match(/^runoob/g);
var n2=str.match(/^runoob/gm);
var str="google\nrunoob\ntaobao";
var n1=str.match(/google./);
var n2=str.match(/runoob./s);
6 其他示例
/gr[ae]y/ // 匹配 {gray, grey}
/b[aeiou]bble/ // 匹配 {babble, bebble, bibble, bobble, bubble}
/[b-chm-pP]at|ot/ // 匹配 {bat, cat, hat, mat, nat, oat, pat, Pat, ot}
/colou?r/ // 匹配 {color, colour}
/rege(x(es)?|xps?)/ // 匹配 {regex, regexes, regexp, regexps}
/go*gle/ // 匹配 {ggle, gogle, google, gooogle, goooogle, ...}
/go+gle/ // 匹配 {gogle, google, gooogle, goooogle, ...}
/g(oog)+le/ // 匹配 {google, googoogle, googoogoogle, googoogoogoogle, ...}
/z{3}/ // 匹配 {zzz}
/z{3,6}/ // 匹配 {zzz, zzzz, zzzzz, zzzzzz}
/[Bb]rainf\*\*k/ // 匹配 {Brainf**k, brainf**k}
/\d/ // 匹配 {0,1,2,3,4,5,6,7,8,9}
/1\d{10}/ // 匹配 11 个数字,以 1 开头
/\d+(\.\d\d)?/ // 包含一个正整数或包含两位小数位的浮点数。
/[^*@#]/ // 排除 *、@ 、# 三个特色符号
/^dog/ // 匹配以 "dog" 开始
/dog$/ // 匹配以 "dog" 结尾
/^dog$/ // is exactly "dog"