Barra invertida em strings de expressões regulares em JavaScript
Em strings que contêm expressões regulares, é necessário escapar (na prática, duplicar) as barras invertidas. Vamos ver um exemplo. Suponha que temos a seguinte string:
let str = 'xyz';
Suponha que temos o seguinte código com uma expressão regular:
let reg = /\w+/;
let res = str.match(reg);
Vamos converter a expressão regular em uma string. Nesse caso, surgirá um problema com a barra invertida:
let reg = new RegExp('\w+'); // não funciona
let res = str.match(reg);
Para resolver o problema, vamos duplicar a barra invertida:
let reg = new RegExp('\\w+'); // funciona
let res = str.match(reg);
Problemas práticos
Converta a expressão regular em uma string:
let str = 'x1y x12y x123y';
let reg = /x\d+y/;
let res = str.replace(reg, '!');
Converta a expressão regular em uma string:
let str = 'x.y xay xby';
let reg = /x\.y/;
let res = str.replace(reg, '!');
Converta a expressão regular em uma string:
let str = 'x\\y';
let reg = /x\\y/;
let res = str.replace(reg, '!');