`

js 正则表达式的怪异

 
阅读更多

看例子吧

 

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种 

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)); 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics