Método replace em javascript

O método replace (), em javascript, retorna uma nova string com algumas, ou todas,  as ocorrências de um padrão substituídas por uma string informada. O padrão pode ser uma string de carateres ou uma expressão regular, e a string de substituição pode ser uma cadeia de carateres ou uma função a ser chamada para cada ocorrência do padrão encontrada.

Sintaxe
string.replace (Expressão regular | string de carateres, nova string | função [, flags]);

Retorno da função
Uma nova string de carateres com algumas ou todas as correspondências de um padrão substituídas por uma string de substituição.

Parâmetros

  • Expressão regular 

Todas as ocorrências que correspondam à expressão regular serão substituído pelo valor informado no parâmetro #2.

  • string de carateres

Uma string que deve ser substituída por nova string.

  • Nova string

A string que vai substituir a string informada no parâmetro #1. Uma série de padrões de substituição especiais são suportados.

Função

A função invocada responsável pelo tratamento de cada ocorrência encontrada e pelo retorno da  nova string de carateres (para colocar no lugar do string informado no parâmetro #1). Os argumentos fornecidos a esta função encontram-se descritos  abaixo.

flags
Nota: O argumento flags não funciona no v8 Core (Chrome e nodejs). Uma string especificando uma combinação de sinalizadores de expressões regulares. O uso do parâmetro flags no método String.replace está fora de uso. Em vez de usar este parâmetro, use uma expressão regular com as flags (ou sinalizadores, opções) correspondentes. O valor deste parâmetro, se for utilizado, deve ser uma sequência que consiste em um ou mais dos seguintes carateres que afetaram a operação, tal como descrito:

g – Todas as ocorrências
Eu – ignorar caso
m – corresponder em várias linhas

 Descrição do método:

Este método não altera a string informada no parâmetro #1. Ele simplesmente retorna uma nova string.

Para realizar uma pesquisa global, e, substituir todas as ocorrências encontradas, deve incluir a chave g na expressão regular, ou, se o primeiro parâmetro é uma string, incluir a flag g no parâmetro flags.

 Especificando uma string como um parâmetro:

 A sequência de substituição pode incluir os seguintes padrões de substituição especiais:

inserções Padrão

$$ -> Insere um “$”.
$& -> Insere o sub string correspondida.
$` -> Insere a parte da sub string que precede a sub string correspondida.
$’ ->Insere a parte da cadeia que segue a sub string correspondida.
$n ou $nn -> Onde n ou nn são dígitos decimais. Insere a sub string correspondida referente ao  enésimo bloco (grupo de parêntesis curvos), desde que o primeiro argumento seja uma expressão regular.

 Especificando uma função como um parâmetro:

 Pode-se especificar uma função como segundo parâmetro. Neste caso, a função será invocada depois da busca das ocorrências ter sido realizada. O resultado da função (valor de retorno) será usado como a string de substituição. (Nota: os padrões de substituição especiais acima mencionados não se aplicam neste caso.) Note ainda que a função será chamada várias vezes, uma para cada ocorrência encontrada, se a expressão regular no primeiro parâmetro tiver especificada a opção g (global).

Os argumentos da função são os seguintes:

match  -> Uma ocorrência encontrada. (corresponde à opção acima $&.)

p1, p2, … ->É a ocorrência correspondente ao Enésimo par de parêntesis curvos da expressão regular. (corresponde a $1, $2, etc. acima.) por exemplo, se esta for a expressão regular fornecida /(\a+)(\b+)/, p1 é a ocorrência para \a+, e p2 para \b+.

offset ->O total de ocorrências encontradas em toda a string. (Por exemplo, se a string fornecida for: “abcd”, e o bloco a encontrar for: “bc”,então o valor do offset será 1..)

string -> A própria string examinada.
(O número exato de parâmetros vai depender do numerous de sub padrões entre parêntesis forem definidos)

Exemplos:

var str = "Isto é um Teste... ";
var str_final = str.replace(/teste/i, "Teste muito fixe");

Neste caso o valor da variável  str_final será Isto é um “Teste muito fixe”. De notar que a opção i, na expressão regular torna a busca case insensitive.

var str = "Isto é um Teste... teste... ";
var str_final = str.replace(/teste/ig, "Teste muito fixe");

Neste caso o valor da variável  str_final será “Isto é um Teste muito fixe… Teste muito fixe”. De notar que a opção g, na expressão regular faz com que a substituição seja global, ou seja, todas as ocorrências serão substituídas.

var padrao = /(\w+)\s(\w+)/;
var str = "Rui Tavares";
var str_final  = str.replace(padrao, "$2, $1");

Neste caso o valor da variável  str_finalserá “Tavares Rui”.O exemplo seguinte transforma graus Fahrenheit em graus celsius. Os graus Fahrenheit deve ser um número com um F no final. A função retorna um numero em graus celcius com um C no final. Com um imput de 212F, a função retorna 100C.

function far_para_celius(x)
{
  function converter(str, p1, offset, s)
  {
    return ((p1-32) * 5/9) + "C";
  }
  var s = String(x);
  var teste = /(\d+(?:\.\d*)?)F\b/g;
  return s.replace(teste, converter);
}
var str_final= f2c('212F');

Neste exemplo, todas as ocorrências de letras maiúsculas serão convertidas em letras minuscula e um hífen será inserido antes de cada ocorrência. O importante aqui é que é necessário uma operação adicional antes da  string ser devolvida.

function Formatar(xx)
{
  function mai_mim(match)
  {
    return '-' + match.toLowerCase();
  }
  return xx.replace(/[A-Z]/g, mai_min);
}
var str_final = Formatar('borderTop'));

Neste caso o valor da variável  str_final será “border-top”.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *