lastIndex 属性

更新:2007 年 11 月

返回字符的位置,该位置是被搜索字符串中下一次匹配的开始位置。

{RegExp | reArray}.lastIndex

参数

  • RegExp
    必选。全局 RegExp 对象。

  • reArray
    必选。Regular Expression 对象的 exec 方法所返回的数组。

备注

lastIndex 属性是从零开始的,也就是说,第一个字符的索引是零。其初始值为 -1。无论何时产生一个成功匹配,其值都被修改。

RegExp 对象的 lastIndex 属性是由 RegExp 对象的 exectest 方法以及 String对象的 matchreplacesplit 方法修改的。

下面的规则适用于 lastIndex 的值:

  • 如果没有匹配,则 lastIndex 被设置为 -1。

  • 如果 lastIndex 大于字符串的长度,则 testexec 失败,并且 lastIndex 被设置为 -1。

  • 如果 lastIndex 等于字符串的长度,且模式与空字符串匹配,则正则表达式匹配。否则,匹配失败并且 lastIndex 被重新设置为 -1。

  • 否则,lastIndex 被设置为紧接最近的匹配的下一个位置。

RegExp.lastIndex 属性的初始值为 -1。它的值是只读的,并且每当成功实现匹配时就会更改。

说明:

以快速模式(JScript 的默认模式)运行时,RegExp 对象的属性不可用。若要从命令行编译使用这些属性的程序,必须使用 /fast- 关闭快速选项。由于线程处理问题,在 ASP.NET 中关闭快速选项是不安全的。

示例

下面的示例阐释了 lastIndex 属性的用法。该函数重复一个字符串搜索,并打印出字符串中每一个词的 indexlastIndex 值。

var src : String = "The rain in Spain falls mainly in the plain.";
var re : RegExp = /\w+/g;
var arr : Array;
while ((arr = re.exec(src)) != null)
   print(arr.index + "-" + arr.lastIndex + "\t" + arr);

该程序的输出为:

0-3     The
4-8     rain
9-11    in
12-17   Spain
18-23   falls
24-30   mainly
31-33   in
34-37   the
38-43   plain

要求

版本 3

应用于:

RegExp 对象

请参见

概念

正则表达式语法

参考

exec 方法