Grupy przechwytujące w metodzie replace w wyrażeniach regularnych JavaScript
Podczas pracy z metodą replace, jeśli
umieścimy coś w grupie przechwytującej w wyrażeniu regularnym,
w ciągu zastępczym możemy wstawić zawartość
tej grupy wpisując znak dolara $
i numer grupy. Na przykład, $1 - pierwsza
grupa, $2 - druga grupa i tak dalej.
Po co to jest potrzebne i jak z tego korzystać, zobaczmy na przykładach.
Przykład
Znajdźmy wszystkie liczby i zamiast nich wstawmy te same liczby, ale w nawiasach okrągłych. W tym celu wszystkie znalezione liczby będziemy zastępować nimi samymi, ale w nawiasach:
let str = '1 23 456 xax';
let res = str.replace(/(\d+)/g, '($1)');
W rezultacie do zmiennej zostanie zapisane następujące:
'(1) (23) (456) xax'
Przykład
Znajdźmy wszystkie ciągi znaków reprezentujące
liczby z iksami wokół i zamieńmy te
liczby na nie same, ale z '!' znakami wokół:
let str = 'x1x x23x x456x xax';
let res = str.replace(/x(\d+)x/g, '!$1!');
W rezultacie do zmiennej zostanie zapisane następujące:
'!1! !23! !456! xax'
Przykład
Rozwiążmy następujące zadanie: dane są ciągi znaków
typu 'aaa@bbb' - litery, potem małpa,
potem litery. Należy zamienić miejscami litery
przed @ i po.
let str = 'aaa@bbb ccc@ddd';
let res = str.replace(/([a-z]+)@([a-z]+)/g, '$2@$1');
W rezultacie do zmiennej zostanie zapisane następujące:
'bbb@aaa ddd@ccc'
Zadania praktyczne
Dany jest ciąg znaków:
let str = '12 34 56 78';
Zamień miejscami cyfry we wszystkich dwucyfrowych liczbach.
Dany jest ciąg znaków z datą:
let str = '31.12.2025';
Przekształć tę datę na '2025.12.31'.