Condividi tramite


Metodo replace

Aggiornamento: novembre 2007

Restituisce una copia di una stringa in cui il testo è stato sostituito utilizzando un'espressione regolare o una stringa di ricerca.

function replace(rgExp : RegExp, replaceText : String) : String

Argomenti

  • rgExp
    Obbligatorio. Istanza di un oggetto Regular Expression contenente il criterio di espressione regolare e i flag applicabili. Può anche essere un oggetto String o una stringa 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.

  • replaceText
    Obbligatorio. Oggetto String o valore letterale stringa che specifica il testo con cui sostituire tutte le corrispondenze di rgExp individuate nell'oggetto stringa corrente. In JScript 5.5 o versioni successive, l'argomento replaceText può anche essere una funzione che restituisce il testo sostitutivo.

Note

Il risultato del metodo replace è una copia dell'oggetto stringa corrente 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 deve essere determinata dinamicamente.

Caratteri

Significato

$$

$ (JScript 5.5 o versioni successive).

$&

Specifica la parte dell'oggetto stringa corrente corrispondente all'intero criterio di ricerca (JScript 5.5 o versioni successive)

$`

Specifica la parte dell'oggetto stringa corrente che precede la corrispondenza descritta da $&. (JScript 5.5 o versioni successive)

$'

Specifica la parte dell'oggetto stringa corrente che segue la corrispondenza descritta da $& (JScript 5.5 o versioni successive)

$n

La sottocorrispondenza n catturata, dove n è una singola cifra decimale che varia da 1 a 9 (in JScript 5.5 o versioni successive).

$nn

La sottocorrispondenza nn catturata, dove nn è un numero decimale a due cifre che varia da 01 a 99 (in JScript 5.5 o versioni successive).

Se replaceText è una funzione, per ciascuna sottostringa corrispondente la funzione è denominata con gli argomenti m + 3, dove m è il numero delle parentesi di cattura aperte 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 dell'oggetto stringa corrente in cui si è verificata la corrispondenza e l'argomento m + 3 è l'oggetto stringa corrente. Il risultato è un valore stringa derivante dalla sostituzione di ogni sottostringa trovata con il valore corrispondente restituito della chiamata di funzione.

Quando si utilizza il metodo replace vengono aggiornate le proprietà dell'oggetto globale RegExp.

Esempio

Nell'esempio seguente è illustrato l'utilizzo del metodo replace per sostituire la prima istanza della parola "The" con la parola "A". Viene sostituita solo la prima istanza di "The" perché il criterio di ricerca fa distinzione tra maiuscole e minuscole.

function ReplaceDemo(){
   var r, re;                   //Declare variables.
   var ss = "The man hit the ball with the bat.\n";
   ss += "while the fielder caught the ball with the glove.";
   re = /The/g;                //Create regular expression pattern.
   r = ss.replace(re, "A");    //Replace "The" with "A".
   return(r);                  //Return string with replacement made.
}

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;                      //Declare variables.
   var ss = "The rain in Spain falls mainly in the plain.";
   re = /(\S+)(\s+)(\S+)/g;        //Create regular expression pattern.
   r = ss.replace(re, "$3$2$1");   //Swap each pair of words.
   return(r);                      //Return resulting string.
}

Nel seguente esempio, valido per JScript 5.5 e versioni successive, viene eseguita una conversione da gradi Fahrenheit a gradi Celsius, utilizzando una funzione come replaceText. Per vedere il funzionamento di questa funzione, utilizzare una stringa contenente un numero seguito immediatamente da una "F", ad esempio "Water boils at 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("Water freezes at 32F and boils at 212F."));

Requisiti

Versione 1

Si applica a:

Oggetto String

Vedere anche

Riferimenti

Metodo exec

Metodo match

Oggetto RegExp

Metodo search

Metodo test