JavaScriptテックラボ

JavaScriptの正規表現で後方参照を使う

JavaScriptの正規表現で後方参照したい場合、後方参照したい文字列を丸括弧で囲います。
例えば、大文字のAからZの組み合わせの文字([A-Z])を後方参照したい場合は、下記のように[A-Z]+を丸括弧で囲みます。

str.replace(/([A-Z]+)/, ***);

後方参照とした文字はreplaceの第2引数(置換用文字)で使えます。
次のように後方参照arguments[]を無名関数の返却値として指定してください。

str.replace(/([A-Z]+)/, function(){return arguments[1]});

上記では検索した文字でそのまま置換しているので、置換前と置換後で文字の変化はありません。

実際例としては、たとえば ABCD01234EFG という文字列があったとして、大文字の英数字と数字の3つの組み合わせの区切りにハイフンを入れたい場合、下記のようになります。

str = "ABCD01234EFG"
str1 = str.replace(/^([A-Z]+)(\d+)([A-Z]+)$/, function(){return arguments[1] + "-"+ arguments[2] + "-" + arguments[3]});

arguments[1]が1つ目の丸括弧、arguments[2]が2つ目の丸括弧の値を表します。

関連記事