【Node.js24.x】RegExp::$`プロパティの使い方
プロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
プロパティは、最後に正規表現のマッチングが実行された入力文字列全体を保持するプロパティです。これはRegExpオブジェクトの静的プロパティであり、RegExp.inputという別名も持ちます。
RegExp.$_プロパティは、RegExp.prototype.exec()メソッドやString.prototype.match()メソッドなど、正規表現を用いたマッチング操作が実行された際に、自動的にその操作の対象となった元の文字列全体が設定されます。このプロパティを利用することで、直前に行われた正規表現のマッチングがどの文字列に対して行われたのかを、後から確認することができます。例えば、あるテキストデータから特定のパターンを抽出し、その後でその元のテキストデータ全体を再確認したい場合に、このプロパティが利用できます。
ただし、このプロパティはグローバルな性質を持つため、アプリケーション内で複数の正規表現操作が同時に、または連続して実行されるような状況では、意図しない値が設定され、プログラムの動作が予測困難になる可能性があります。このため、JavaScriptの新しいバージョンでは、このRegExp.$_プロパティの使用は非推奨とされており、代わりにString.prototype.match()やRegExp.prototype.exec()が返すマッチ結果オブジェクトを直接利用することが推奨されています。互換性のために残されていますが、新規のコード開発では利用を避けるべきです。
構文(syntax)
1const text = "Node.js is a JavaScript runtime."; 2const regex = /JavaScript/; 3 4regex.exec(text); 5 6console.log(RegExp.$`);
引数(parameters)
引数なし
引数はありません
戻り値(return)
string
直前の正規表現マッチングで、マッチした部分より「前」の文字列全体を返します。