Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida em um artigo Front-end.

Estava lendo um artigo do Mario Solto sobre Front-end (JavaScript replace: manipulando Strings e regex). Lendo a parte em que ele fala sobre substituição de palavras com String replace, me bateu a seguinte ideia. No código em que ele fala de substituição de uma palavra repetida com a expressão regular.

const frase = 'Frase que começa com um palavra-feia e tem outra palavra-feia no final'

  const fraseAtualizada = frase.replace(/palavra-feia/g, '********') 
  console.log(fraseAtualizada) // "Frase que começa com um ******** e tem outra ******** no final"

Pensei em usar a mesma ideia, porém com uma série de palavras em um Array. Mas não deu certo.

Segue o código da minha tentativa:

const frase = 'Merda errei de novo essa merda.';

const listaDePalavarao = new Array (
    `merda`,
    `Merda`
);

const fraseAtualizada = frase.replace(listaDePalavarao, '*******');

console.log(fraseAtualizada);

Alguém poderia me esclarecer qual é a melhor forma de substituição de várias palavras?

1 resposta
solução!

Aoba!

let frase = 'Xingamento errei de novo essa xingamento.';

const lista = /xingamento|Xingamento/g // O | (Pipe) significa OU

frase = frase.replace(lista, '***')

console.log(frase);

Essa foi a solução que encontrei, mas infelizmente ela não usa array. Vou fazer alguns testes sobre isso, se eu descobrir algo edito esse post.

Editado: Você pode usar um 'laço for' para percorrer sua array:

let frase = 'Xingamento errei de novo essa xingamento. Ontem eu comi um abacate e uma cebola';


const lista = ['xingamento', 'Xingamento', 'abacate', 'cebola']

for (let i = 0; i < lista.length; i++){

frase = frase.replace(lista[i], '***')
}

console.log(frase);

espero que ajude