Spätné lomítko v reťazcoch regulárnych výrazov v JavaScripte

V reťazcoch s regulárnymi výrazmi je potrebné escapovať (v podstate zdvojnásobiť) spätné lomítka. Pozrime sa na príklad. Majme nasledujúci reťazec:

javascriptlet str = 'xyz';

Majme nasledujúci kód s regulárnym výrazom:

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

Skúsme previesť regulárny výraz do reťazca. V tomto prípade nastane problém so spätným lomítkom:

javascriptlet reg = new RegExp('\w+'); // nefunguje
let res = str.match(reg);

Na vyriešenie problému zdvojnásobíme spätné lomítko:

javascriptlet reg = new RegExp('\\w+'); // funguje
let res = str.match(reg);

Praktické úlohy

Задание 1

Preveďte regulárny výraz do reťazca:

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

Preveďte regulárny výraz do reťazca:

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

Preveďte regulárny výraz do reťazca:

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