Criando método ReplaceAll

Vamos implementar uma função de replaceAll em javascript, que visa substituir todas as ocorrências de uma string A por outra string B, existente na string C.

Para quem já precisou de algo parecido, provavelmente já conhece a função replace. Funciona bem, a menos que você precise substituir todas as ocorrências da string alvo, aí ela pode não ser mais bem util.

A alternativa para isso é algo extremamente simples! Lembra das funções split e join? Com certeza sim.

O segredo aqui é combinar as duas para criar o seu replaceAll:

var meuTexto = "Essa Ferrari é a mais bonita Ferraris de todas as Ferraris";
var arrTexto = meuTexto.split("Ferrari");
var meuNovoTexto = arrTexto.join("Lamborghini");
console.log(meuNovoTexto);
// Essa Lamborghini é a mais bonita Lamborghini de todas as Lamborghini

A função split quebra a string em um array, exatamente nos pontos da string que foi definida, no nosso caso, na palavra “Ferrari”.

Dessa forma, nossa variável arrTexto ficará com os seguintes valores:

arrTexto[0] = "Essa ";
arrTexto[1] = " é a mais bonita ";
arrTexto[2] = " de todas as ";
arrTexto[3] = "";

Na linha 3 nós fazemos o join desse array, usando como cola a palavra “Lamborghini”, então é como se ele fizesse o comando abaixo, internamente:

arrTexto[0] + "Lamborghini" + arrTexto[1] + "Lamborghini" + arrTexto[2] + "Lamborghini" + arrTexto[3]

O que nos resultaria em :

Essa Lamborghini é a mais bonita Lamborghini de todas as Lamborghini

Se preferir, é possível fazer a função inteira em uma linha:

var meuTexto = "Essa Ferrari é a mais bonita Ferraris de todas as Ferraris";
var meuNovoTexto = meuTexto.split("Ferrari").join("BMW");
console.log(meuNovoTexto);
// Essa BMW é a mais bonita BMW de todas as BMW

Legal né!

Até a próxima!

Leave a Reply

Your email address will not be published. Required fields are marked *