Saltar al contenido principal
eLearner.app
Módulo 7 · Lección 2 de 426/32 en el curso~10 min
Lecciones del módulo (2/4)

Replace base e `$1`

In JavaScript, String.prototype.replace(regex, sostituzione) esegue un matching del pattern e sostituisce ogni match con la stringa indicata. Con flag g sostituisce tutti i match; senza, solo il primo. replaceAll forza il comportamento globale (e richiede flag g sulla regex).

JS
'ciao mondo'.replace(/o/g, '0'); // "cia0 m0nd0"
'Mario Rossi'.replace(/(\w+) (\w+)/, '$2 $1'); // "Rossi Mario"

Riferimenti nella stringa di sostituzione

Dentro la stringa di replace, questi sono speciali:

  • $1, $2, \u2026 -- backreference al gruppo numerato della regex.
  • $<nome> -- backreference al gruppo nominato.
  • $& -- l'intero match.
  • `$`` -- testo prima del match.
  • $' -- testo dopo il match.
  • $$ -- un singolo $ letterale.
JS
const data = '2024-03-15';
data.replace(/(\d{4})-(\d{2})-(\d{2})/, '$3/$2/$1');
// "15/03/2024"

Riformatta la data invertendo l'ordine. La regex ha 3 gruppi, e nella stringa di sostituzione li referenzi come $1, $2, $3.

Riferimenti speciali nelle sostituzioni

Oltre a $1, $2, puoi usare $& per inserire l'intero testo matchato, $ per tutto il testo che precede il match, e$'` per tutto quello che lo segue. Questo consente sostituzioni ricche anche senza scrivere codice JS.

Prova tu

Ejercicio#regex.m7.l2.e1
Intentos: 0Cargando...

Trova ogni data in formato YYYY-MM-DD con tre gruppi (anno, mese, giorno). Cosi' potresti usare replace per ottenere DD/MM/YYYY.

Cargando editor...
Mostrar pista

Sostituisci \\d+ con \\d{4}, \\d{2}, \\d{2} dentro tre gruppi catturati con (...).

Solución disponible después de 3 intentos

Esercizio di ripasso

Ejercicio#regex.m7.l2.e2
Intentos: 0Cargando...

Trova 'nome cognome' come due gruppi nominati `nome` e `cognome`, cosi' potresti riscriverlo come `cognome, nome` con `$<cognome>, $<nome>`.

Cargando editor...
Mostrar pista

Usa (?<nome>\\w+) e (?<cognome>\\w+) separati da \\s+.

Solución disponible después de 3 intentos

Sfida aggiuntiva

Ejercicio#regex.m7.l2.e3
Intentos: 0Cargando...

Crea un pattern di cattura per invertire l'ordine di nome e cognome dal formato `Cognome, Nome` al formato `Nome Cognome`.

Cargando editor...
Mostrar pista

Usa due gruppi di cattura per catturare cognome e nome, la sostituzione avverrà tramite $2 $1.

Solución disponible después de 3 intentos