你的位置:首页 > Java教程

[Java教程][RegExp]正则表达式中global模式的特性


一直不是很清楚javascript的global到底表现在哪些方面,所以今天特地做了几个测试:

var str = 'bbaaabb',  reg = /^b|b$/;  while(reg.test(str)){    str = str.replace(reg,'');    console.log(reg.lastIndex + ":" + str);  }

最终结果:

//0:baaabb//0:aaabb//0:aaab//0:aaa

但是如果稍做一些修改

var str = 'bbaaabb',  reg = /^b|b$/g;  while(reg.test(str)){    str = str.replace(reg,'');    console.log(reg.lastIndex + ":" + str);  }

最终结果则是:

//0:baaab//0:aaa


这样的结果说明,global模式下,在匹配到了开始的b字符后,还将继续匹配结尾的b字符,从而忽视掉中间"|"操作符。