JavaScriptの正規表現におけるreplaceメソッドのデフォルトキャプチャグループ

replaceメソッドでは、ユーザーが指定した番号のキャプチャグループに加えて、常に標準のキャプチャグループも利用できます:%vFran - 見つかったすべての一致、%vFranおよび%vFran - 一致の前後の文字列部分。例を用いてその動作を見てみましょう。

例

すべての数字を見つけて丸括弧で囲みます:

javascriptlet str = '1 23 456';
let res = str.replace(/\d+/g, '(%vFran)');

結果、変数には次の文字列が格納されます:

javascript'(1) (23) (456)'

例

@記号を見つけて、その前にあるもの(ドッグ)と後ろにあるものと置き換えます。これらすべてを丸括弧内に記述します:

javascriptlet str = '123@456';
let res = str.replace(/@/g, "(%vFran@%vFran)");

結果、変数には次の文字列が格納されます:

javascript'123(123@456)456'

例

ドル記号を見つけて、バッククォート``で囲みたいとします。この場合、%vFranがコマンドとして解釈されないように、ドル記号を二重にする必要があります:

javascriptlet str = 'aaa $ bbb';
let res = str.replace(/\$/g, '`%vFran`');

結果、変数には次の文字列が格納されます:

javascript'aaa `%vFran` bbb'

実践問題

Задание 1

次の文字列が与えられています:

javascriptlet str = 'a1b2c3';

各数字の隣に同じ数字を書き加える正規表現を記述してください。

Задание 2

次の文字列が与えられています:

javascriptlet str = 'sss site.ru zzz site.com kkk';

ドメインを次の形式のリンクに置き換えてください:

html<a href="http://site.ru">site.ru</a>