Backslash în șirurile expresiilor regulate în JavaScript

În șirurile cu expresii regulate este necesar să se ecraneze (practic să se dubleze) backslash-urile. Să ne uităm la un exemplu. Să presupunem că avem următorul șir:

javascriptlet str = 'xyz';

Să presupunem că avem următorul cod cu o expresie regulată:

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

Să transformăm expresia regulată într-un șir. În acest caz, vom avea o problemă cu backslash-ul:

javascriptlet reg = new RegExp('\w+'); // nu funcționează
let res = str.match(reg);

Pentru a rezolva problema, să dublăm backslash-ul:

javascriptlet reg = new RegExp('\\w+'); // funcționează
let res = str.match(reg);

Probleme practice

Задание 1

Transformați expresia regulată într-un șir:

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

Transformați expresia regulată într-un șir:

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

Transformați expresia regulată într-un șir:

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