出处

RegExp 对象 - JavaScript 教程 - 网道 —— RegExp.prototype.exec()

代码

正则实例对象的exec方法,用来返回匹配结果。如果发现匹配,就返回一个数组,成员是匹配成功的子字符串,否则返回null

利用g修饰符允许多次匹配的特点,可以用一个循环完成全部匹配

  1. var reg = /a/g;
  2. var str = 'abc_abc_abc'
  3. while(true) {
  4. var match = reg.exec(str);
  5. if (!match) break;
  6. console.log('#' + match.index + ':' + match[0]);
  7. }
  8. // #0:a
  9. // #4:a
  10. // #8:a

上面代码中,只要exec方法不返回null,就会一直循环下去,每次输出匹配的位置和匹配的文本。

正则实例对象的lastIndex属性不仅可读,还可写。设置了g修饰符的时候,只要手动设置了lastIndex的值,就会从指定位置开始匹配。