JavaScriptにおける正規表現文字列内のバックスラッシュ
正規表現を含む文字列では、バックスラッシュを (実際には二重にする必要があります)エスケープする必要があります。 例を見てみましょう。 次の文字列があるとします:
let str = 'xyz';
次の正規表現を使用したコードがあるとします:
let reg = /\w+/;
let res = str.match(reg);
正規表現を文字列に変換してみましょう。 この場合、バックスラッシュに問題が発生します:
let reg = new RegExp('\w+'); // 動作しない
let res = str.match(reg);
この問題を解決するには、バックスラッシュを二重にします:
let reg = new RegExp('\\w+'); // 動作する
let res = str.match(reg);
実践問題
正規表現を文字列に変換してください:
let str = 'x1y x12y x123y';
let reg = /x\d+y/;
let res = str.replace(reg, '!');
正規表現を文字列に変換してください:
let str = 'x.y xay xby';
let reg = /x\.y/;
let res = str.replace(reg, '!');
正規表現を文字列に変換してください:
let str = 'x\\y';
let reg = /x\\y/;
let res = str.replace(reg, '!');