正则表达式

[a-z] :匹配小写字母从a-z中的任一字符;
[0-9a-zA-Z] :匹配数字从0-9,小写字母从a-z或者是大写字母从A-Z的任一字符;
[abcd] :匹配字符abcd中的任一字符;
[^a-z] :匹配除小写字母从a-z以外的任一字符;
[^abcd] :匹配除abcd以外的任一字符;

d :匹配一个数字字符,用字符簇表示[0-9];
D :匹配一个非数字字符,也可以使用字符簇[^0-9]或[^d]来表示;
w :匹配包括下划线的任何单词字符,用字符簇[0-9a-zA-Z_];
W :匹配任何非单词字符,[^0-9a-zA-Z_]或[^w];
s :匹配任何空白字符,空格、制表符、换行符都可以通过s匹配;
S :匹配任何非空白字符,[^s];
.:匹配除了换行符之外的任意字符,等价于[^ ];

* 匹配前面的子表达式零次或多次,0到多,可以使用{0,}代替,即前面的字符可以有也可以没有;
+ 匹配前面的子表达式一次或多次,1到多,可以使用{1,}代替,即前面的字符至少有一个;
? 匹配前面的子表达式零次或一次,0或1,可以使用{0,1}代替;
{n} 匹配确定的 n 次,如{18},连续匹配18次;
{n,} 至少匹配n 次,如{1,},代表最少匹配1次;
{n,m} 最少匹配 n 次且最多匹配 m 次,如{1,7}代表最少匹配1最多匹配7次;

^ 匹配输入字符串的开始位置;
$ 匹配输入字符串的结束位置;
 匹配一个单词边界(字符串开头、结尾、空格、逗号、点号等符号);
B 匹配非单词边界

:表示转义;
|:表示或;

元字符  1~9:用来表示前面以匹配的字符或分组的一个引用,和$1~$9一样;

()的意义

限定量词作用的范围:

var reg3 = /(Matz)*/; // 0或多个Matz

限定多选结构的范围:

var reg = /(Matz|Eich)/

分组捕获:

var reg1 = /(d{3}) (d{3})/
var str = '111 222'
str.replace(reg1, '$2 $1') // => '222 111' , 注意这里的$2,$1,存放了匹配的字符串
 

为反向引用捕获文本

var reg = /(boy)1/   // 相当于 /boyboy/
reg.test('boyboy')   // => true
原文地址:https://www.cnblogs.com/xjy20170907/p/12732711.html