lastIndex 的定义

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

lastIndex 的作用

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

lastIndex 的实例

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

1234567891011121314151617
JavaScript

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);
}

运行结果如下:

1234567891011121314151617181920
JavaScript

[ '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 都会被自动增加,表示下次匹配的开始位置,从而实现全局匹配。