lastIndex 属性
返回字符的位置,该位置是被搜索字符串中下一次匹配的开始位置。
{RegExp | reArray}.lastIndex
实参
RegExp
必选。 全局 RegExp 对象。reArray
必选。 Regular Expression 对象的 exec 方法所返回的数组。
备注
lastIndex 属性是从零开始的,也就是说,第一个字符的索引是零。 初始值为 –1。 无论何时产生一个成功匹配,其值都被修改。
RegExp 对象的 lastIndex 属性是由 RegExp 对象的 exec 和 test 方法以及 String对象的 match、replace 和 split 方法修改的。
下面的规则适用于 lastIndex 的值:
如果没有匹配,则 lastIndex 被设置为 -1。
如果 lastIndex 大于字符串的长度,则 test 和 exec 失败,并且 lastIndex 被设置为 -1。
如果 lastIndex 等于字符串的长度,且模式与空字符串匹配,则正则表达式匹配。 否则,匹配失败并且 lastIndex 被重新设置为 -1。
否则,lastIndex 被设置为紧接最近的匹配的下一个位置。
RegExp.lastIndex 属性的初始值是 –1。 它的值是只读的,并且每当执行成功的匹配时就会更改。
提示
当以快速模式(JScript 的默认模式)运行时,RegExp 对象的属性不可用。 若要从命令行编译使用这些属性的程序,必须使用 /fast- 关闭快速选项。 由于线程处理问题,在 ASP.NET 中关闭快速选项是不安全的。
示例
下面的示例演示如何使用 lastIndex 属性。 该函数重复一个字符串搜索,并打印出字符串中每一个词的 index 和 lastIndex 值。
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