Replace Múltiplo de String com JavaScript
Fala pessoal, tudo bom?
Hoje estou aqui para falar sobre JavaScript, irei compartilhar com vocês formas de se fazer replace com string, expressão regular e variáveis.
Vamos supor que você tenha o HTML abaixo e precise fazer alguns replaces (substituições) com JavaScript. Todas as classes tag-p-1
devem ser trocadas por tag-p-2
e todos os atributos names dos inputs devem ser trocados por data[2]
..
Se você tentar usar o método replace
do JavaScript como abaixo não obterá sucesso, pois ele trocará apenas a primeira ocorrência de cada um..
Veja o resultado:
Precisamos usar o método replace
com expressão regular e o modificador g
para conseguirmos substituir todas instâncias que desejamos. Poderiamos fazer da seguinte forma:
Resultado:
Mas observe os 3 últimos, eles acabaram ficando com dois colchetes de abertura e fechamento pois eles são elementos de expressão regular, temos que escapar eles adicionando \
antes. Veja:
Resultado:
Agora sim, fizemos o replace de todas ocorrências de maneira certa..
Variáveis no padrão da expressão regular
Mas e se precisarmos usar o padrão vindo do valor de alguma variável concatenado com uma string? Se você tentar como abaixo não irá funcionar.
Passei por essa situação hoje e para resolver tive que criar um objeto de expressão regular e passar para o método replace
como abaixo:
\
.Se você testar verá que funcionará perfeitamente..
O que você achou?
Até mais.