當以一個字符串爲正則表達式時

反斜槓在正則表達式中是轉義的,\b,\t,\s等都是有其含義,可是在字符串中正則表達式

咱們不能把它和在正則中徹底的同樣對待。字符串

好比/\s12\s/這個正則匹配的是開頭空白,中間12,後邊是空白的字符串,console

可是若是寫成"\s12\s"就不行了,須要寫成"\\s12\\s",test

可是"\t12\t" 就等於 /\t12\t/ 就等於 "\\t12\\t",tls

因此在字符串中最好用雙反斜槓,要不很容易會出現問題。co

包括\b和\d也是不同的。說白了,就是字符串的正則和//這個的正則仍是有些不同的字符

var reg1 = new RegExp("\dls\d");
console.log(reg1);
var reg2 = new RegExp("\bls\b");
console.log(reg2);new

 

//var reg2 = new RegExp("\tls\t");
//console.log(reg2);ab

/*
var reg1 = new RegExp(/\bls\b/);
var reg2 = new RegExp("\s+ls\s+");
var reg3 = new RegExp("\\s+ls\\s+");
console.log(reg1);
console.log(reg2);
console.log(reg3);
var str = "dfads+lss+dfsa";
alert(reg1.test(str));
alert(reg2.test(str));
alert(reg3.test(str));

var reg4 = new RegExp(/s+lss+/);
console.log(reg4);
var str2 = "dfads+lss+dfsa";
var str3 = "ablsdfsa";
alert(reg4.test(str2));
alert(reg4.test(str3));

var reg5 = new RegExp(/s\+lss\+/); console.log(reg5); alert(reg5.test(str2)); alert(reg5.test(str3)); */

相關文章
相關標籤/搜索