Come sostituire un valore in una stringa in javascript
Ti sarà capitato spesso di dover sostituire un valore in una stringa in Javascript.
Per fare questo si utilizza il metodo replace() con questa sintassi
stringa.replace(valore, nuovoValore)
Il metodo ha quindi due due parametri:
- il primo rappresenta il valore da ricercare nella stringa
- il secondo è il valore da sostiture
Vediamo subito un esempio: sostituiamo "verde" con "marrone" nella stringa sottostante.
var testo = "Giulio ha una maglia verde";
var nuovotesto = testo.replace("verde", "marrone");
La variabile "nuovotesto" avrà valore "Giulio ha una maglia marrone"
Il metodo replace e l'operatore globale g
Provate adesso ad utilizzare questo testo iniziale
var testo = "Giulio ha una maglia verde e una camicia verde";
var nuovotesto = testo.replace("verde", "marrone");
Ci potremmo aspettare di ottenere la variabile "nuovotesto" con valore "Giulio ha una maglia marrone e una camicia marrone"... Invece non è così!
Applicare il metodo replace in questo modo consente la sostituzione solo sulla prima occorrenza trovata, e quindi solo al primo "verde".
Il risultato quindi sarà: "Giulio ha una maglia marrone e una camicia verde"
Se vogliamo applicare il replace a tutte le occorrenze presenti nella stringa iniziale, dobbiamo utilizzare l'operatore globale "g".
Questo operatore si utilizza assieme alle espressioni regolari che hanno la seguente sintassi /pattern/modifiers dove "pattern" è il testo che vogliamo sostiture e "modifiers" è l''operatore che nel nostro caso è g.
Quindi, racchiudiamo il valore da sostituire tra due slash, e successivamente aggiungiamo il modificatore g.
var testo = "Giulio ha una maglia verde e una camicia verde";
var nuovotesto = testo.replace(/verde/g, "marrone");
Il risultato sarà "Giulio ha una maglia marrone e una camicia marrone".
Attenzione: l'operatore globale g è case-sensitive, quindi la stringa da cercare deve rispettare le maiuscole/minuscole presenti nel testo.