JavaScript RegExp lastIndex 属性

定義と使用法

lastIndex 属性は次の一致を開始するためのインデックスを指定します。

注意:この属性は"g"修飾子が設定された場合にのみ有効です。

この属性は整数を返し、 exec() または test() メソッドが見つけた最後の一致の後の次の文字位置を指定しています。

注意:exec() および test() 一致が見つからない場合、 lastIndex リセットされます。

let text = "The rain in Spain stays mainly in the plain";
let pattern = /ain/g;
let result = "";
while (pattern.test(text)==true) {
  result += "見つかり位置: " + pattern.lastIndex + "<br>";
}

実際に試してみる

構文

regexp.lastIndex

返り値

タイプ 説明
数字 整数で、exec()やtest()メソッドが見つけた最後の一致の後の次の文字位置を指定しています。

技術的詳細

RegExpオブジェクトの lastIndex 属性は読み取りおよび書き込み可能な値です。gフラグが設定された正規表現の場合、この属性は整数を保持し、これは前回の一致したテキストの後の最初の文字位置を宣言しています。

前回の一致結果は、メソッドRegExp.exec()とRegExp.test()で見つけられ、以下のように lastIndex 属性が指す位置を次の検索の開始点として使用します。これにより、これらのメソッドを繰り返し呼び出すことで、文字列内のすべての一致するテキストを巡回できます。

この属性は読み取りおよび書き込み可能です。次の検索開始時点で設定できます。メソッドexec()やtest()が一致するテキストを見つけることができなくなった場合、自動的に lastIndex 属性は0にリセットされます。

ブラウザがサポートしています。

lastIndex ECMAScript1 (ES1) の機能です。

すべてのブラウザが完全にサポート ES1 (JavaScript 1997):

Chrome IE Edge Firefox Safari Opera
サポート サポート サポート サポート サポート サポート