Core JavaScript 1.5 Reference:Global Objects:RegExp:lastIndex
出典: MDC
[編集] 概要
次のマッチの始まりの位置を示す、読み書き可能な整数値のプロパティです。
| RegExpのプロパティ | |
| 実装されたバージョン: | JavaScript 1.2, NES3.0
JavaScript 1.5: |
| ECMA バージョン: | ECMA-262, Edition 3 |
[編集] 説明
lastIndex は、個々の正規表現オブジェクトのプロパティです。
このプロパティは、正規表現が、グローバルサーチを示す"g" を使用した場合にのみ、セットされます。以下のルールが適用されます。:
-
lastIndexが文字列の長さよりも大きければ、regexp.test及びregexp.execは失敗し、lastIndexは 0 にセットされます。
-
lastIndexが文字列の長さと等しく、かつ、正規表現が空文字列にマッチする場合には、正規表現はlastIndexの始まりの入力にマッチします。
-
lastIndexが文字列の長さと等しく、かつ、正規表現が空文字列にマッチしない場合、正規表現は入力にマッチせず、lastIndexは 0 にリセットされます。
- それ以外の場合は、
lastIndexはごく最近のマッチに続く次の位置にセットされます。
例えば、以下の連続した処理を考えてみてください。:
-
re = /(hi)?/g - 空文字列にマッチします。
-
re("hi") -
lastIndexが 2になり、["hi", "hi"]が返ります。 -
re("hi") -
[""]という空配列が返り、その配列のゼロ番目の要素がマッチした文字列です。この場合では、lastIndexが 2 (かつ、いまだに 2 である) であったときに、"hi" の長さが 2 であるので、空文字列です。