【Node.js24.x】RegExp::globalプロパティの使い方
globalプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
globalプロパティは、正規表現オブジェクトが「グローバル検索」を行うかどうかを示すブール値を保持するプロパティです。
このプロパティは、正規表現にg(global)フラグが設定されているかどうかをtrueまたはfalseで示します。globalプロパティがtrueの場合、正規表現による検索は、対象となる文字列の中から最初に見つかった一致だけでなく、文字列の最後まで全ての一致を繰り返し探し出します。一方、globalプロパティがfalseの場合(つまりgフラグが設定されていない場合)、正規表現の検索は最初に見つかった一致のみで停止し、それ以降の候補は探しません。
たとえば、RegExp.prototype.exec()メソッドを繰り返し呼び出す際に、globalプロパティがtrueであれば、呼び出しごとに次に一致する部分を順番に返します。全ての一致が見つかるとnullを返します。これにより、開発者は文字列中の全てのマッチに対して処理を実行できます。
このglobalプロパティは読み取り専用であり、正規表現オブジェクトが一度作成されると、その値は変更できません。正規表現リテラル(例: /pattern/g)やRegExpコンストラクタ(例: new RegExp('pattern', 'g'))を用いてgフラグを指定することで、このプロパティの初期値が設定されます。文字列内の複数のパターンを効率的に見つけ出し、処理するために、globalプロパティは正規表現の振る舞いを制御する上で非常に重要な役割を果たします。
構文(syntax)
1const regexWithGlobalFlag = /pattern/g; 2const regexWithoutGlobalFlag = /pattern/; 3 4console.log(regexWithGlobalFlag.global); 5console.log(regexWithoutGlobalFlag.global);
引数(parameters)
引数なし
引数はありません
戻り値(return)
boolean
RegExp オブジェクトで、グローバル検索フラグ 'g' が設定されているかどうかを示す真偽値を返します。