首页  >  问答  >  正文

javascript - RegExp实例用法问题exec()方法

var text = "cat, bat, sat, fat";
var pattern2 = /.at/g;
var matches = pattern2.exec(text);
console.log(matches.index);   //0
console.log(matches[0]);   //cat
console.log(pattern2.lastIndex);   //3
matches = pattern2.exec(text);
console.log(matches.index);   //5,为什么是5,不应该从fat开始吗?
console.log(matches[0]);   //bat
console.log(pattern2.lastIndex);   //8

为什么后面从bat开始,不应该从fat开始吗?

phpcn_u1582phpcn_u15822687 天前758

全部回复(2)我来回复

  • 阿神

    阿神2017-05-18 11:03:08

    不是啊,是一个一个往后走的,第一轮匹配到cat中的at,index改为cat后面的逗号开始的,为3,然后继续往后走匹配到bat中的at,index是5.就像刚开始的0一样。

    回复
    0
  • 为情所困

    为情所困2017-05-18 11:03:08

    //5,为什么是5,不应该从fat开始吗?
    你是不是想问应该从cat开始。。
    如果是这样子的话,把正则最后的g去掉就行了

    回复
    0
  • 取消回复