Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Node.js24.x】RegExp::stickyプロパティの使い方

stickyプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

stickyプロパティは、RegExpオブジェクトが持つ、正規表現のスティッキーフラグ('y'フラグ)が設定されているかどうかを示す真偽値(trueまたはfalse)を保持するプロパティです。

このスティッキーフラグは、正規表現による文字列のマッチング方法に影響を与えます。具体的には、stickyプロパティがtrue(つまり、正規表現にyフラグが設定されている)場合、正規表現エンジンは対象文字列のRegExp.prototype.lastIndexプロパティで指定された位置からのみ、パターンに一致するかどうかの検索を試みます。もし、そのlastIndexで指定された位置からパターンが見つからなければ、正規表現は即座にマッチング失敗と判断され、文字列の他の部分を検索することはありません。

これは、通常のグローバルマッチ(gフラグ)が、lastIndex以降の文字列全体を走査して複数のマッチを探す挙動とは異なります。yフラグが有効な場合、lastIndexが指す位置で厳密に一致することが求められるため、文字列を連続した部分(トークン)として順番に解析するようなシナリオで非常に有用です。例えば、言語のパーサーや特定の形式のデータ抽出など、連続する要素を確実に読み進めたい場合にその能力を発揮します。

gフラグとyフラグが同時に設定された場合でも、stickyプロパティはtrueを返し、yフラグによるlastIndexからの厳密なマッチングが適用されます。このプロパティを参照することで、正規表現オブジェクトがスティッキーモードで動作するかどうかを確認できます。

構文(syntax)

1const myRegex = /test/y;
2console.log(myRegex.sticky);

引数(parameters)

引数なし

引数はありません

戻り値(return)

boolean

RegExp.prototype.sticky プロパティは、正規表現が y フラグ(stickyモード)で作成された場合に true を返します。それ以外の場合は false を返します。

関連コンテンツ

関連プログラミング言語