lastIndex 属性

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

{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 quick brown fox jumps over the lazy dog.";
var re : RegExp = /\w+/g;
var arr : Array;
while ((arr = re.exec(src)) != null)
{
    print(arr.index + "-" + arr.lastIndex + "\t" + arr[0]);
}

该程序的输出为:

0-3     The
4-9     quick
10-15   brown
16-19   fox
20-25   jumps
26-30   over
31-34   the
35-39   lazy
40-43   dog

要求

版本 3

应用于:

RegExp 对象

请参见

参考

exec 方法

概念

正则表达式语法