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!