#### RegExp特殊字符中的需要转义字符
* * * * *
需要转义的特殊字符前面加 `\`
匹配输入字符串的结尾位置,如果需要匹配匹配输入字符串的结尾位置,如果需要匹配本身的话,使用`\$`
`^` 匹配输入字符串的开始位置,匹配^本身的话,使用\^
`*` 匹配前面的子表达式的零次或者多次,匹配*本身的话,使用\*
`+` 匹配子表达式的1次或者多次,匹配+本身的话,使用\+
`. `匹配除换行符之外的任何一个字符,匹配.本身的话,使用\.
` [ `匹配一个中括号开始,匹配本身的,使用\[
`?` 匹配前面的子表达式的零次或者1次,或指明一个非贪婪限定符,要匹配本身的话,使用\?
`\ `匹配本身的话,请使用`\\`
` { `标记限定符开始的地方,要匹配{ ,请使用`\{`
` |` 指明多项中的一个选择,可以理解含义为或的意思,匹配本身的话,使用`\|`
我们都知道在js中遇到特殊字符要使用转义字符,但是如果多个转义字符同时出现的话,那又是怎么用的呢?js中定义正则表达式有两种方法,这两种方法同样的正则表达式但是运行的结果可能是不相同的。
//第一种,直接定义法:
~~~
var reg1 = /\d/g;
var str = '1';
console.log(reg1.test(str));
//返回true,说明此时reg1匹配的是\d,也就是数字
var reg1 = /\\d/g;
var str = '\\d';
console.log(reg1.test(str));
//返回true,说明此时reg1匹配的是字符串"\\d"
var reg1 = /\\\d/g;
var str = '\\1';
console.log(reg1.test(str));
//返回true,说明此时reg1匹配的是字符串"\\数字"
var reg1 = /\\\\d/g;
var str = '\\\\d';
console.log(reg1.test(str));
//返回true,说明此时reg1匹配的是字符串"\\d"
~~~
//第二种:构造函数方式:
~~~
var reg2 = new RegExp('\d','g');
var str = 'd';
console.log(reg2.test(str));
//返回true,说明此时reg2匹配的是字符"d"
var reg2 = new RegExp('\\d','g');
var str = '1';
console.log(reg2.test(str));
//返回true,说明此时reg2匹配的是字符"\d",即数字
var reg2 = new RegExp('\\\d','g');
var str = '1';
console.log(reg2.test(str));
//返回true,说明此时reg2匹配的是字符"\d",即数字
var reg2 = new RegExp('\\\\d','g');
var str = '\\d';
console.log(reg2.test(str));
//返回true,说明此时reg2匹配的是字符串"\\d"
var reg2 = new RegExp('\\\\\d','g');
var str = '\\d';
console.log(reg2.test(str));
//返回true,说明此时reg2匹配的是字符串"\\d"
var reg2 = new RegExp('\\\\\\d','g');
var str = '\\1';
console.log(reg2.test(str));
//返回true,说明此时reg2匹配的是字符串"\\数字"
var reg2 = new RegExp('\\\\\\\d','g');
var str = '\\1';
console.log(reg2.test(str));
//返回true,说明此时reg2匹配的是字符串"\\数字"
~~~