Grupuri de captură în metoda replace din expresiile regulate JavaScript
Când lucrăm cu metoda replace, dacă
punem ceva într-un grup de captură în expresia regulată,
în șirul de înlocuire putem insera conținutul
acelui grup scriind simbolul dolar $
și numărul grupului. De exemplu, $1 - primul
grup, $2 - al doilea grup și așa mai departe.
Pentru ce este util și cum să folosim acest lucru să vedem pe exemple.
Exemplul
Să găsim toate numerele și în locul lor să inserăm aceleași numere, dar între paranteze rotunde. Pentru aceasta toate numerele găsite le vom înlocui cu ele însele, dar între paranteze:
let str = '1 23 456 xax';
let res = str.replace(/(\d+)/g, '($1)');
Ca rezultat, în variabilă se va scrie următorul text:
'(1) (23) (456) xax'
Exemplul
Să găsim toate șirurile care reprezintă
numere înconjurate de 'x' și să înlocuim aceste
numere cu ele însele, dar înconjurate de semne '!':
let str = 'x1x x23x x456x xax';
let res = str.replace(/x(\d+)x/g, '!$1!');
Ca rezultat, în variabilă se va scrie următorul text:
'!1! !23! !456! xax'
Exemplul
Să rezolvăm următoarea problemă: sunt date șiruri
de forma 'aaa@bbb' - litere, apoi simbolul @,
apoi litere. Este necesar să schimbăm între ele locurile literelor
de dinainte de @ și de după.
let str = 'aaa@bbb ccc@ddd';
let res = str.replace(/([a-z]+)@([a-z]+)/g, '$2@$1');
Ca rezultat, în variabilă se va scrie următorul text:
'bbb@aaa ddd@ccc'
Probleme practice
Este dat șirul:
let str = '12 34 56 78';
Schimbați între ele locurile cifrelor în toate numerele din două cifre.
Este dat șirul cu o dată:
let str = '31.12.2025';
Transformați această dată în '2025.12.31'.