返回字符的位置,该位置是被搜索字符串中下一次匹配的开始位置。
{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要求