Web/JavaScript/Reference/Global objects/RegExp/lastIndex

From Get docs


The lastIndex is a read/write integer property of regular expression instances that specifies the index at which to start the next match.


Property attributes of RegExpInstance.lastIndex
Writable yes
Enumerable no
Configurable no


Description

This property is set only if the regular expression instance used the g flag to indicate a global search, or the y flag to indicate a sticky search. The following rules apply:

  • If lastIndex is greater than the length of the string, test() and exec() fail, then lastIndex is set to 0.
  • If lastIndex is equal to or less than the length of the string and if the regular expression matches the empty string, then the regular expression matches input starting from lastIndex.
  • If lastIndex is equal to the length of the string and if the regular expression does not match the empty string, then the regular expression mismatches input, and lastIndex is reset to 0.
  • Otherwise, lastIndex is set to the next position following the most recent match.

Examples

Using lastIndex

Consider the following sequence of statements:

var re = /(hi)?/g;

Matches the empty string.

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

Returns ["hi", "hi"] with lastIndex equal to 2.

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

Returns ["", undefined], an empty array whose zeroth element is the match string. In this case, the empty string because lastIndex was 2 (and still is 2) and hi has length 2.

Specifications

Specification
ECMAScript (ECMA-262)The definition of 'RegExp.lastIndex' in that specification.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet Node.js
lastIndex Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 1

IE

Full support 5.5

Opera

Full support 5

Safari

Full support 1

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 1

Samsung Internet Android

Full support 1.0

nodejs

Full support Yes

Legend

Full support  
Full support


See also