#### 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匹配的是字符串"\\數字"
~~~