La barra invertida en cadenas de expresiones regulares en JavaScript
En las cadenas con expresiones regulares es necesario escapar (prácticamente duplicar) las barras invertidas. Veamos un ejemplo. Supongamos que tenemos la siguiente cadena:
javascriptlet str = 'xyz';
Supongamos que tenemos el siguiente código con una expresión regular:
javascriptlet reg = /\w+/;
let res = str.match(reg);
Rehagamos la expresión regular en una cadena. En este caso, surgirá un problema con la barra invertida:
javascriptlet reg = new RegExp('\w+'); // no funciona
let res = str.match(reg);
Para resolver el problema, dupliquemos la barra invertida:
javascriptlet reg = new RegExp('\\w+'); // funciona
let res = str.match(reg);
Problemas prácticos
Задание 1
Convierta la expresión regular en una cadena:
javascriptlet str = 'x1y x12y x123y';
let reg = /x\d+y/;
let res = str.replace(reg, '!');
Задание 2
Convierta la expresión regular en una cadena:
javascriptlet str = 'x.y xay xby';
let reg = /x\.y/;
let res = str.replace(reg, '!');
Задание 3
Convierta la expresión regular en una cadena:
javascriptlet str = 'x\\y';
let reg = /x\\y/;
let res = str.replace(reg, '!');