RegExp: lastIndex
lastIndex is a read/write integer property of RegExp instances that specifies the index at which to start the next match.
Note that lastIndex is not a property of the RegExp prototype but is instead only exposed from RegExp instances.
Property attributes of RegExp: 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 when test() and exec() are called on a given input:
- If
lastIndexis greater than the length of the input,exec()ortest()will not find a match, andlastIndexwill be set to 0. - If
lastIndexis equal to or less than the length of the input,exec()ortest()will attempt to match the input starting fromlastIndex.- If
exec()ortest()find a match, thenlastIndexwill be set to the position of the end of the matched string in the input. - If
exec()ortest()do not find a match, thenlastIndexwill be set to 0.
- If
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
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
lastIndex |
1 |
12 |
1 |
5.5 |
5 |
1 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
See also
RegExp.prototype.dotAllRegExp.prototype.globalRegExp.prototype.hasIndicesRegExp.prototype.ignoreCaseRegExp.prototype.multilineRegExp.prototype.sourceRegExp.prototype.stickyRegExp.prototype.unicode
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex