Zpětné lomítko v řetězcích regulárních výrazů v JavaScriptu
V řetězcích s regulárními výrazy je třeba escapovat (v podstatě zdvojit) zpětná lomítka. Podívejme se na příklad. Předpokládejme, že máme následující řetězec:
let str = 'xyz';
Předpokládejme, že máme následující kód s regulárním výrazem:
let reg = /\w+/;
let res = str.match(reg);
Přepišme regulární výraz do řetězce. V tomto případě narazíme na problém se zpětným lomítkem:
let reg = new RegExp('\w+'); // nefunguje
let res = str.match(reg);
Pro vyřešení problému zdvojíme zpětné lomítko:
let reg = new RegExp('\\w+'); // funguje
let res = str.match(reg);
Praktické úlohy
Přepište regulární výraz do řetězce:
let str = 'x1y x12y x123y';
let reg = /x\d+y/;
let res = str.replace(reg, '!');
Přepište regulární výraz do řetězce:
let str = 'x.y xay xby';
let reg = /x\.y/;
let res = str.replace(reg, '!');
Přepište regulární výraz do řetězce:
let str = 'x\\y';
let reg = /x\\y/;
let res = str.replace(reg, '!');