RegExp.lastIndex

この翻訳は不完全です。英語から この記事を翻訳 してください。

概要

次のマッチの始まりの位置を示す、読み書き可能な整数値のプロパティです。

説明

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 であるので、空文字列です。

ドキュメントのタグと貢献者

 このページの貢献者: teoli, ethertank, Potappo, Mgjbot
 最終更新者: teoli,