看例子吧
var reg = new RegExp("abc","gi");
console.log(reg.test("abc"));
console.log(reg.test("abc"));
console.log(reg.test("abc"));
console.log(reg.test("abc"));
console.log(reg.test("abc"));
console.log(reg.test("abc"));
console.log(reg.test("abc"));
console.log(reg.test("abc"));
惊奇的发现打印结果不一样啊
解决办法有3种
1
var reg = new RegExp("abc","i"); console.log(!!reg.match("abcd")); console.log(!!reg.match("abcd")); console.log(!!reg.match("abcd")); console.log(!!reg.match("abcd")); console.log(!!reg.match("abcd")); console.log(!!reg.match("abcd")); console.log(!!reg.match("abcd")); console.log(!!reg.match("abcd"));
2
var reg = new RegExp("abc","gi");
reg.lastIndex=0;console.log(reg.test("abc"));
reg.lastIndex=0;console.log(reg.test("abc"));
reg.lastIndex=0;console.log(reg.test("abc"));
reg.lastIndex=0;console.log(reg.test("abc"));
reg.lastIndex=0;console.log(reg.test("abc"));
reg.lastIndex=0;console.log(reg.test("abc"));
reg.lastIndex=0;console.log(reg.test("abc"));
reg.lastIndex=0;console.log(reg.test("abc"));
3
var reg = new RegExp("abc","gi"); var reg = new RegExp("abc","gi"); console.log(!!'abc'.match(reg)); console.log(!!'abc'.match(reg)); console.log(!!'abc'.match(reg)); console.log(!!'abc'.match(reg)); console.log(!!'abc'.match(reg)); console.log(!!'abc'.match(reg));