Zachytené skupiny v metóde replace v regulárnych výrazoch JavaScript
Pri práci s metódou replace, ak
niečo uložíme do zachytanej skupiny v regulárnom výraze,
v reťazci pre nahradenie môžeme vložiť obsah
tejto skupiny napísaním znaku dolára $
a čísla skupiny. Napríklad, $1 - prvá
skupina, $2 - druhá skupina atď.
Načo je to potrebné a ako to používať, pozrime sa na príkladoch.
Príklad
Nájdime všetky čísla a namiesto nich vložme tie isté čísla, ale v okrúhlych zátvorkách. Na to všetky nájdené čísla budeme nahradzovať ich samotnými, ale v zátvorkách:
let str = '1 23 456 xax';
let res = str.replace(/(\d+)/g, '($1)');
Výsledkom do premennej sa zapíše nasledovné:
'(1) (23) (456) xax'
Príklad
Nájdime všetky reťazce, predstavujúce
čísla s 'x' okolo a nahraďme tieto
čísla ich samými, ale s '!' znakmi okolo:
let str = 'x1x x23x x456x xax';
let res = str.replace(/x(\d+)x/g, '!$1!');
Výsledkom do premennej sa zapíše nasledovné:
'!1! !23! !456! xax'
Príklad
Poďme vyriešiť nasledujúcu úlohu: dané sú reťazce
tvaru 'aaa@bbb' - písmená, potom zavináč,
potom písmená. Je potrebné vymeniť miesta písmenám
pred @ a po.
let str = 'aaa@bbb ccc@ddd';
let res = str.replace(/([a-z]+)@([a-z]+)/g, '$2@$1');
Výsledkom do premennej sa zapíše nasledovné:
'bbb@aaa ddd@ccc'
Praktické úlohy
Daný reťazec:
let str = '12 34 56 78';
Vymeňte miesta čísliciam vo všetkých dvojciferných číslach.
Daný reťazec s dátumom:
let str = '31.12.2025';
Preveďte tento dátum na '2025.12.31'.