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:
let str = 'xyz';
Majme nasledujúci kód s regulárnym výrazom:
let 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:
let reg = new RegExp('\w+'); // nefunguje
let res = str.match(reg);
Na vyriešenie problému zdvojnásobíme spätné lomítko:
let reg = new RegExp('\\w+'); // funguje
let res = str.match(reg);
Praktické úlohy
Preveďte regulárny výraz do reťazca:
let str = 'x1y x12y x123y';
let reg = /x\d+y/;
let res = str.replace(reg, '!');
Preveďte regulárny výraz do reťazca:
let str = 'x.y xay xby';
let reg = /x\.y/;
let res = str.replace(reg, '!');
Preveďte regulárny výraz do reťazca:
let str = 'x\\y';
let reg = /x\\y/;
let res = str.replace(reg, '!');