JavaScript RegExp lastIndex 属性

定义和用法

lastIndex 属性规定开始下一个匹配的索引。

注意:此属性仅在设置了 "g" 修饰符时才有效。

此属性返回整数,规定了 exec()test() 方法找到的最后一个匹配后紧接的字符位置。

注意:如果 exec()test() 没有得到匹配,则将 lastIndex 重置为 0。

实例

let text = "The rain in Spain stays mainly in the plain";
let pattern = /ain/g;

let result = "";
while (pattern.test(text)==true) {
  result += "Found at pos " + pattern.lastIndex + "<br>";
}

亲自试一试

语法

regexp.lastIndex

返回值

类型 描述
数字 整数,它规定在 exec() 或 test() 方法找到的最后一个匹配之后紧接的字符位置。

技术细节

RegExp 对象的 lastIndex 属性是一个可读可写的值。对于设置了 g 标志的正则表达式来说,该属性存放的是一个整数,它声明的是上一次匹配文本之后的第一个字符的位置。

上次匹配的结果是由方法 RegExp.exec() 和 RegExp.test() 找到的,它们都以 lastIndex 属性所指的位置作为下次检索的起始点。这样,就可以通过反复调用这两个方法来遍历一个字符串中的所有匹配文本。

该属性是可读可写的。只要目标字符串的下一次搜索开始,就可以对它进行设置。当方法 exec() 或 test() 再也找不到可以匹配的文本时,它们会自动把 lastIndex 属性重置为 0。

浏览器支持

lastIndex 是 ECMAScript1 (ES1) 特性。

所有浏览器都完全支持 ES1 (JavaScript 1997):

Chrome IE Edge Firefox Safari Opera
支持 支持 支持 支持 支持 支持