lastIndex的定义

lastIndex 是正则表达式的一个属性,它表示上一次匹配的末尾位置。它的默认值为0,表示从字符串的开头开始匹配。如果正则表达式有标志g,那么lastIndex属性就会被自动设置,表示下次匹配的开始位置。

lastIndex的作用

lastIndex属性可以用来实现全局匹配。当正则表达式有标志g时,它会自动设置lastIndex,表示下次匹配的开始位置。每次匹配结束后,lastIndex会被自动增加,表示下次匹配的开始位置。这样,就可以实现全局匹配。

lastIndex的实例

下面是一个使用lastIndex实现全局匹配的例子:

let str = 'hello world, hello world, hello world';
let reg = /hello/g;
let res;
while(res = reg.exec(str)) {
console.log(res);
console.log('lastIndex:', reg.lastIndex);
}

运行结果如下:

[ 'hello', index: 0, input: 'hello world, hello world, hello world' ]
lastIndex: 6
[ 'hello', index: 12, input: 'hello world, hello world, hello world' ]
lastIndex: 18
[ 'hello', index: 24, input: 'hello world, hello world, hello world' ]
lastIndex: 30

可以看到,每次匹配结束后,lastIndex都会被自动增加,表示下次匹配的开始位置,从而实现全局匹配。