JavaScriptにおける正規表現文字列内のバックスラッシュ

正規表現を含む文字列では、バックスラッシュを (実際には二重にする必要があります)エスケープする必要があります。 例を見てみましょう。 次の文字列があるとします:

javascriptlet str = 'xyz';

次の正規表現を使用したコードがあるとします:

javascriptlet reg = /\w+/;
let res = str.match(reg);

正規表現を文字列に変換してみましょう。 この場合、バックスラッシュに問題が発生します:

javascriptlet reg = new RegExp('\w+'); // 動作しない
let res = str.match(reg);

この問題を解決するには、バックスラッシュを二重にします:

javascriptlet reg = new RegExp('\\w+'); // 動作する
let res = str.match(reg);

実践問題

Задание 1

正規表現を文字列に変換してください:

javascriptlet str = 'x1y x12y x123y';
let reg = /x\d+y/;
let res = str.replace(reg, '!');
Задание 2

正規表現を文字列に変換してください:

javascriptlet str = 'x.y xay xby';
let reg = /x\.y/;
let res = str.replace(reg, '!');
Задание 3

正規表現を文字列に変換してください:

javascriptlet str = 'x\\y';
let reg = /x\\y/;
let res = str.replace(reg, '!');