Metodo replace
Restituisce una copia di una stringa in cui il testo è stato sostituito utilizzando un'espressione regolare o una stringa di ricerca.
oggString.replace(rgExp, testoSost)
Argomenti
oggString
Obbligatorio. Oggetto String o valore letterale stringa in cui eseguire la sostituzione. L'oggetto non viene modificato dal metodo replace.
rgExp
Obbligatorio. Un'istanza di un oggetto Regular Expression contenente l'espressione con criteri regolare e flag applicabili. Può anche essere un oggetto String o un valore letterale. Se rgExp non è un'istanza di un oggetto Regular Expression, esso verrà convertito in una stringa e verrà eseguita una ???ricerca esatta dei risultati; nessun tentativo verrà fatto per convertire la stringa in un'espressione regolare.
testoSost
Obbligatorio. Oggetto String o valore letterale stringa che specifica il testo con cui sostituire tutte le corrispondenze di rgExp individuate in oggString. In JScript versione 5.5 o successiva, l'argomento testoSost può anche essere una funzione che restituisce il testo di cui eseguire la sostituzione.
Osservazioni
Il risultato del metodo replace è la copia di oggString ottenuta dopo l'esecuzione di tutte le sostituzioni.
Ognuna delle seguenti variabili di corrispondenza può essere utilizzata per identificare la corrispondenza più recente e la stringa da cui proviene. Le variabili di corrispondenza possono essere utilizzate nella sostituzione del testo laddove la stringa in cui eseguire la sostituzione dovrà essere determinata dinamicamente.
Caratteri Significato
$$ $ (JScript versione 5.5 o successiva)
$& Specifica la parte di oggString corrispondente all'intero criterio. (JScript versione 5.5 o successiva)
$` Specifica la parte di oggString che precede la corrispondenza descritta da $&. (JScript versione 5.5 o successiva)
$' Specifica la parte di oggString che segue la corrispondenza descritta da $&. (JScript versione 5.5 o successiva)
$n La sottocorrispondenza n catturata, dove n è una singola cifra decimale che varia da 1 a 9. (JScript versione 5.5 o successiva)
$nn La sottocorrispondenza nn catturata, dove n è un numero decimale a due cifre che varia da 01 a 99. (JScript versione 5.5 o successiva)
Se testoSost è una funzione, per ciascuna sottostringa corrispondente la funzione è denominata con gli m + 3 argomenti, dove m è il numero delle parentesi di sinistra di cattura in rgExp. Il primo argomento è la sottostringa corrispondente. I successivi argomenti m sono tutte le catture risultanti dalla ricerca. L'argomento m + 2 è l'offset all'interno di oggString in cui si è verificata la corrispondenza e l'argomento m + 3 è oggString. Il risultato è un valore di stringa derivante dalla sostituzione di ogni sottostringa corrispondente con il valore corrispondente restituito della chiamata di funzione.
Il metodo replace aggiorna le proprietà dell'oggetto globale RegExp.
Esempio
Nel seguente esempio è illustrato l'utilizzo del metodo replace per sostituire la prima istanza della parola "Il" con la parola "Un".
function ReplaceDemo(){
var r, re; //Dichiara variabili.
var ss = "Il giocatore colpisce la palla con la testa.\n";
ss += "mentre il portiere la respinge con i pugni.";
re = /Il/g; //Crea espressione con criteri regolare.
r = ss.replace(re, "A"); //Sostituisce "Il" con "Un".
return(r); //Restituisce una stringa con la sostituzione effettuata.
}
Inoltre, il metodo replace consente di sostituire le espressioni secondarie nel criterio di ricerca. L'esempio seguente illustra l'inversione di ogni coppia di parole nella stringa:
function ReplaceDemo(){
var r, re; //Dichiara variabili.
var ss = "In Spagna la pioggia cade prevalentemente nelle zone pianeggianti.";
re = /(\S+)(\s+)(\S+)/g; //Crea espressione con criteri regolare.
r = ss.replace(re, "$3$2$1"); //Inverte ogni coppia di parole.
return(r); //Restituisce la stringa risultante.
}
Nel seguente esempio, applicabile in JScript versione 5.5 e successiva, viene eseguita una conversione da gradi Fahrenheit a gradi Celsius, utilizzando una funzione come testSost. Per vedere il comportamento di questa funzione, utilizzare una stringa contenente un numero seguito immediatamente da una "F" (ad esempio, "L'acqua bolle a 212”).
function f2c(s) {
var test = /(\d+(\.\d*)?)F\b/g; //Initialize pattern.
return(s.replace
(test,
function($0,$1,$2) {
return((($1-32) * 5/9) + "C");
}
)
);
}
document.write(f2c("L'acqua ghiaccia a 32F e bolle a 212F."));