文字
分享


lastIndex 属性

返回字符位置,它是被查找字符串中下一次成功匹配的开始位置。

RegExp.lastIndex

与该属性有关的对象总是全局 RegExp 对象。

说明

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

lastIndex 属性被 RegExp 对象的 exec 和 test 方法,以及 String 对象的 match、replace、和 split 方法修改。

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

  • 如果还没有匹配,则 lastIndex 被设置为 -1.
  • 如果 lastIndex 比字符串的长度大,则 testexec 失败,并且 lastIndex 被设置为 -1。
  • 如果 lastIndex 等于字符串的长度,且模式与空字符串匹配,则正则表达式匹配。否则,匹配失败并且 lastIndex 被重置为 -1。
  • 否则,lastIndex 被设置为紧接最近的匹配的下一个位置。

示例

下例阐明了 lastIndex 属性的用法。该函数重复了查找字符串,并打印出字符串中每一个字的 indexlastIndex 值。

1

2

3

4

5

6

7

8

9

10

11

12

13

<code>function RegExpTest(){

  var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())

  if (ver >= 5.5){

    var src = "The rain in Spain falls mainly in the plain.";

    var re = /\w+/g;

    var arr;

    while ((arr = re.exec(src)) != null)

       print(arr.index + "-" + <span class="cfe"><b>arr.lastIndex</b></span> + "\t" + arr);

  }

  else{

    alert("You need a newer version of JScript for this to work");

  }

}</code>

要求

版本3

请参阅

RegExp 对象的属性 | 正则表达式语法

应用于: RegExp 对象