.lastIndex
読み込み/書き込みが可能な正規表現の数値プロパティで、次のマッチが開始されるインデックスが指定されています。
lastIndex
は、読み込み/書き込みが可能な正規表現の数値プロパティで、
次のマッチが開始されるインデックスが指定されています。
プロパティの属性
RegExp.prototype.lastIndexの属性プロパティ | |
---|---|
書き込み可能 | ◯ |
列挙可能 | × |
設定可能 | × |
文法
lastIndex = regExpObj.lastIndex;
サンプル
このプロパティは、グローバル(全体)検索を示す"g"フラグが仕様された正規表現の場合のみ設定されます。 下記のルールが適用されます。
-
もし、
lastIndex
が文字列の長さより大きい場合、regexp.test
とregexp.exec
は失敗し、lastIndex
には0が設定されます。 -
もし、
lastIndex
が文字列の長さと同じで、正規表現が空文字列にマッチする場合、 正規表現は入力のlastIndex
開始位置にマッチします。 -
もし、
lastIndex
が文字列の長さと同じで、正規表現が空文字列にマッチしない場合、 正規表現は入力にマッチせず、lastIndex
は0にリセットされます。 -
上記以外の場合、
lastIndex
は直近にマッチした場所に続く次の位置に設定されます。
注意事項
次からの一連の処理の流れについて考えてみます。
var re = /(hi)?/g;
空文字列にマッチします。
console.log(re.exec("hi"));
console.log(re.lastIndex);
lastIndexが2である["hi", "hi"]
が返ります。
console.log(re.exec("hi"));
console.log(re.lastIndex);
ゼロ幅要素にマッチした["", ""]
の空文字列の配列が返ります。
このケースでは、lastIndexが2であった(そして、まだ2である)ため、そして"hi"の文字列長が2であるため、空文字列です。
仕様
ブラウザの互換性
機能 | Chrome | Firefox (Gecko) |
IE | Opera | Safari |
---|---|---|---|---|---|
基本 | ◯ | ◯ | ◯ | ◯ | ◯ |
機能 | Android | Chrome for Android |
Firefox Mobile |
IE Mobile |
Opera Mobile |
Safari Mobile |
---|---|---|---|---|---|---|
基本 | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
関連項目
© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。
- 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
- 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
- MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
- "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。