阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS RegExp.lastIndex

      概述

      lastIndex 是正则表达式的一个可读可写的整型属性,用来指定下一次匹配的起始索引。

      RegExp.lastIndex 属性的属性特性:
      writable
      enumerable
      configurable

      语法

      lastIndex = regExpObj.lastIndex;
      

      描述

      只有正则表达式使用了表示全局检索的 “g” 标志时,该属性才会起作用。此时应用下面的规则:

      • 如果 lastIndex 大于字符串的长度,则 regexp.test 和 regexp.exec 将会匹配失败,然后 lastIndex 被设置为 0。
      • 如果 lastIndex 等于字符串的长度,且该正则表达式匹配空字符串,则该正则表达式匹配从 lastIndex 开始的字符串。(then the regular expression matches input starting at lastIndex.)
      • 如果 lastIndex 等于字符串的长度,且该正则表达式不匹配空字符串 ,则该正则表达式不匹配字符串,lastIndex 被设置为 0.。
      • 否则,lastIndex 被设置为紧随最近一次成功匹配的下一个位置。

      示例

      考虑下面的语句:

      var re = /(hi)?/g;
      

      匹配空字符串

      console.log(re.exec("hi"));
      console.log(re.lastIndex);
      

      返回 ["hi", "hi"] ,lastIndex 等于 2。

      console.log(re.exec("hi"));
      console.log(re.lastIndex);
      

      返回 ["", undefined],即一个数组,其第 0 个元素为匹配的字符串。此种情况下为空字符串,是因为 lastIndex 为 2(且一直是 2),"hi" 长度为 2。

      规范

      SpecificationStatusComment
      ECMAScript 3rd Edition. Implemented in JavaScript 1.2.StandardInitial definition.
      JavaScript 1.5: lastIndex is a property of a RegExp instance, not the RegExp object.
      ECMAScript 5.1 (ECMA-262) RegExp.lastIndexStandard 
      ECMAScript 2015 (6th Edition, ECMA-262)RegExp.lastIndexStandard 

      相关链接

      目录
      目录