Predvolené zachytené skupiny v metóde replace v regulárnych výrazoch JavaScript
V metóde replace, okrem zachytených skupín s vašimi
číslami, sú vždy dostupné aj štandardné
zachytené skupiny: $& - celá nájdená zhoda,
$` a $' - časť reťazca pred a
po zhode. Pozrime sa na ich prácu
na príkladoch.
Príklad
Nájdime všetky čísla a obalme ich do okrúhlych zátvoriek:
let str = '1 23 456';
let res = str.replace(/\d+/g, '($&)');
Výsledkom do premennej sa zapíše nasledovné:
'(1) (23) (456)'
Príklad
Nájdime znak @ a nahraďme ho tým, čo stojí pred ním, psíkom, a tým, čo stojí po ňom. Všetko zapíšme v okrúhlych zátvorkách:
let str = '123@456';
let res = str.replace(/@/g, "($`@$')");
Výsledkom do premennej sa zapíše nasledovné:
'123(123@456)456'
Príklad
Povedzme, že chceme nájsť dolár a obaliť ho
do úvodzoviek `. V tomto prípade, aby
$ nebolo pochopené ako príkaz,
dolár je potrebné zdvojiť:
let str = 'aaa $ bbb';
let res = str.replace(/\$/g, '`$$`');
Výsledkom do premennej sa zapíše nasledovné:
'aaa `$` bbb'
Praktické úlohy
Daný reťazec:
let str = 'a1b2c3';
Napíšte regulárny výraz, ktorý vedľa každej číslicy napíše takú istú.
Daný reťazec:
let str = 'sss site.ru zzz site.com kkk';
Nahraďte domény odkazami vo forme:
<a href="http://site.ru">site.ru</a>