lastIndex 属性
更新:2007 年 11 月
返回字符的位置,该位置是被搜索字符串中下一次匹配的开始位置。
{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 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