Web/JavaScript/Reference/Global objects/RegExp/lastIndex
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
lastIndexis greater than the length of the string,test()andexec()fail, thenlastIndexis set to 0. - If
lastIndexis 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 fromlastIndex. - If
lastIndexis equal to the length of the string and if the regular expression does not match the empty string, then the regular expression mismatches input, andlastIndexis reset to 0. - Otherwise,
lastIndexis 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
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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
RegExp.prototype.ignoreCaseRegExp.prototype.globalRegExp.prototype.multilineRegExp.prototype.sourceRegExp.prototype.sticky
RegExpInstance.lastIndex by Mozilla Contributors is licensed under CC-BY-SA 2.5.