Gruppi nel metodo replace delle espressioni regolari JavaScript
Quando si lavora con il metodo replace, se
mettiamo qualcosa in un gruppo (cattura) nell'espressione regolare,
nella stringa di sostituzione possiamo inserire il contenuto
di questo gruppo scrivendo il simbolo del dollaro $
e il numero del gruppo. Ad esempio, $1 - il primo
gruppo, $2 - il secondo gruppo e così via.
Vediamo a cosa serve e come usarlo con degli esempi.
Esempio
Troviamo tutti i numeri e al loro posto inseriamo questi stessi numeri, ma tra parentesi tonde. Per fare ciò sostituiremo tutti i numeri trovati con loro stessi, ma tra parentesi:
let str = '1 23 456 xax';
let res = str.replace(/(\d+)/g, '($1)');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'(1) (23) (456) xax'
Esempio
Troviamo tutte le stringhe che rappresentano
numeri con delle 'x' attorno e sostituiamo questi
numeri con loro stessi, ma con dei segni '!' attorno:
let str = 'x1x x23x x456x xax';
let res = str.replace(/x(\d+)x/g, '!$1!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'!1! !23! !456! xax'
Esempio
Risolviamo il seguente problema: date delle stringhe
del tipo 'aaa@bbb' - lettere, poi il simbolo @,
poi lettere. Dobbiamo scambiare le lettere
prima del @ e dopo.
let str = 'aaa@bbb ccc@ddd';
let res = str.replace(/([a-z]+)@([a-z]+)/g, '$2@$1');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'bbb@aaa ddd@ccc'
Problemi pratici
Data una stringa:
let str = '12 34 56 78';
Scambiate le cifre in tutti i numeri a due cifre.
Data una stringa con una data:
let str = '31.12.2025';
Trasformate questa data in '2025.12.31'.