【JavaScript ECMAScript】RegExp::RegExp.prototype.sourceインスタンスアクセサプロパティの使い方
RegExp.prototype.sourceインスタンスアクセサプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
RegExp.prototype.sourceプロパティは、RegExpオブジェクトが保持する正規表現パターンを表す文字列を保持するプロパティです。このプロパティは、正規表現リテラル(例: /pattern/flags)やnew RegExp()コンストラクタ(例: new RegExp("pattern", "flags"))を用いてRegExpオブジェクトが作成された際に指定された、元のパターン文字列をそのまま返します。
具体的には、正規表現リテラルでいうところのスラッシュ(/)で囲まれた部分の文字列に相当します。例えば、/hello world/igという正規表現オブジェクトがあった場合、sourceプロパティは"hello world"という文字列を返します。この際、正規表現に適用されているグローバルフラグ(g)や大文字・小文字を区別しないフラグ(i)といったフラグ情報は、sourceプロパティの戻り値には含まれません。フラグはflagsプロパティで確認できます。
また、正規表現のパターン内にバックスラッシュ(\)でエスケープされた特殊文字が含まれる場合でも、sourceプロパティはエスケープされた形式のままの文字列を保持します。例えば、/\\d+/という正規表現の場合、sourceプロパティは"\\d+"という文字列を返します。
このsourceプロパティは読み取り専用であり、一度RegExpオブジェクトが生成されると、その内容をプログラムから変更することはできません。システムエンジニアを目指す初心者の方々にとって、既存の正規表現オブジェクトがどのようなパターンを持っているのかを確認したい場合に非常に有用です。デバッグや、動的に生成された正規表現の内容を検証する際などに活用できます。
構文(syntax)
1const regex = /abc/g; 2console.log(regex.source);
引数(parameters)
引数なし
引数はありません
戻り値(return)
string
RegExp.prototype.source は、正規表現オブジェクトが持つパターン文字列を返します。この文字列は、正規表現リテラルで記述されたそのまま、あるいは new RegExp() コンストラクタに渡された引数に対応する形式で表現されます。