o método replace
Retorna uma cópia de uma seqüência de caracteres com texto substituído usando uma seqüência de pesquisa ou de expressão regular.
function replace(rgExp : RegExp, replaceText : String) : String
Argumentos
rgExp
Obrigatório. Uma instância de um A expressão Regular objeto que contém o padrão de expressão regular e sinalizadores aplicáveis. Também pode ser um String o objeto ou literal. Se rgExp não é uma instância de um A expressão Regular o objeto, ele é convertido em uma seqüência de caracteres e uma pesquisa exata é feita para resultados; é feita nenhuma tentativa de converter a string em uma expressão regular.replaceText
Obrigatório. A String objeto ou literal de seqüência de caracteres que contém o texto para substituir para cada correspondência correta de rgExp do objeto de seqüência de caracteres atual. No JScript 5.5 ou posterior, o replaceText argumento também pode ser uma função que retorna o texto de substituição.
Comentários
O resultado do Substituir método é uma cópia do objeto de seqüência de caracteres atual após terem sido feitas substituições especificadas.
Qualquer uma das seguintes variáveis de correspondência pode ser usado para identificar a correspondência mais recente e a seqüência de caracteres de onde ele veio. As variáveis de correspondência podem ser usadas na substituição de texto onde a seqüência de caracteres de substituição tem seja determinado dinamicamente.
Caracteres |
Significado |
---|---|
$$ |
$(JScript 5.5 ou posterior) |
$& |
Especifica a parte do objeto de seqüência de caracteres atual padrão de inteiro correspondente. (JScript 5.5 ou posterior) |
$` |
Especifica a parte do objeto de seqüência de caracteres atual que precede a correspondência descrita por $&. (JScript 5.5 ou posterior) |
$' |
Especifica a parte do objeto atual string que segue a correspondência descrita por $&. (JScript 5.5 ou posterior) |
$n |
O nth capturados submatch, onde n é um único dígito decimal de 1 a 9. (JScript 5.5 ou posterior) |
$nn |
O nnth capturados submatch, onde nn é um número decimal de dois dígitos de 01 a 99. (JScript 5.5 ou posterior) |
Se replaceText é uma função, para cada substring correspondida a função é chamada com o seguinte m + 3 argumentos onde m é o número da esquerda para a captura de parênteses na rgExp. O primeiro argumento é a substring que correspondeu. O próximo m argumentos são todas as capturas que resultou da pesquisa. Argumento m + 2 é o deslocamento dentro do objeto de seqüência de caracteres atual onde a correspondência ocorreu e o argumento m + 3 é o objeto de seqüência de caracteres atual. O resultado é o valor de seqüência de caracteres que resulta da substituição de cada substring correspondida com o valor correspondente de retorno de chamada de função.
O Substituir método atualiza as propriedades do modelo global da RegExp objeto.
Exemplo
O exemplo a seguir ilustra o uso da Substituir método para substituir todas as ocorrências de "a" com "a".
function ReplaceDemo()
{
var s = "The batter hit the ball with the bat ";
s += "and the fielder caught the ball with the glove.";
// Replace "the" with "a".
var re = /the/g;
var r = s.replace(re, "a");
return(r);
}
Além disso, o Substituir método também pode substituir subexpressões no padrão. O exemplo a seguir troca cada par de palavras na seqüência de caracteres.
function ReplaceDemo(){
var s = "The quick brown fox jumps over the lazy dog.";
// Create regular expression pattern.
var re = /(\S+)(\s+)(\S+)/g;
// Exchange each pair of words.
var r = s.replace(re, "$3$2$1");
return(r);
}
// Output: quick The fox brown over jumps lazy the dog.
O exemplo a seguir, que funciona no JScript 5.5 e posteriores, realiza um Fahrenheit para Celsius conversão. Ele ilustra como usar uma função que retorna o texto de substituição. Para ver como funciona a essa função, passar uma string que contém um número seguido imediatamente por um "F" Se (por exemplo, "água resume a 212 C").
function f2c(s1) {
// Initialize pattern.
var test = /(\d+(\.\d*)?)F\b/g;
// Use a function for the replacement.
var s2 = s1.replace(test,
function($0,$1,$2)
{
return((($1-32) * 5/9) + "C");
}
)
return s2;
}
print(f2c("Water freezes at 32F and boils at 212F."));