Zachytávače v metodě replace v regulárních výrazech JavaScriptu
Při práci s metodou replace, pokud
něco vložíme do zachytávače v regulárním výrazu, pak
v řetězci pro nahrazení můžeme vložit obsah
tohoto zachytávače napsáním znaku dolaru $
a čísla zachytávače. Například, $1 - první
zachytávač, $2 - druhý zachytávač a tak dále.
K čemu to je a jak toho používat se podívejme na příkladech.
Příklad
Najděme všechna čísla a místo nich vložme stejná čísla, ale v kulatých závorkách. K tomu všechna nalezená čísla budeme nahrazovat jimi samými, ale v závorkách:
let str = '1 23 456 xax';
let res = str.replace(/(\d+)/g, '($1)');
Výsledkem bude v proměnné následující:
'(1) (23) (456) xax'
Příklad
Najděme všechny řetězce, představující
čísla s 'x' kolem a nahraďme tato
čísla jimi samými, ale s '!' znaky kolem:
let str = 'x1x x23x x456x xax';
let res = str.replace(/x(\d+)x/g, '!$1!');
Výsledkem bude v proměnné následující:
'!1! !23! !456! xax'
Příklad
Pojďme vyřešit následující úkol: jsou dány řetězce
druhu 'aaa@bbb' - písmena, pak zavináč,
pak písmena. Je třeba prohodit místa písmen
před @ a po.
let str = 'aaa@bbb ccc@ddd';
let res = str.replace(/([a-z]+)@([a-z]+)/g, '$2@$1');
Výsledkem bude v proměnné následující:
'bbb@aaa ddd@ccc'
Praktické úlohy
Je dán řetězec:
let str = '12 34 56 78';
Prohoďte číslice ve všech dvouciferných číslech.
Je dán řetězec s datem:
let str = '31.12.2025';
Převeďte toto datum na '2025.12.31'.