Обратный слеш в строках регулярок в 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, '!');