Você sabia? String Replace Function 💻
Se você é programador, certamente já utilizou a função String.replace()
em algum momento no seu código. Essa função é usada para substituir uma determinada substring em uma string por outra.
Mas você sabia que essa função só substitui a primeira ocorrência da substring por padrão? Isso pode ser um problema se você precisar substituir várias ocorrências ao mesmo tempo. Mas não se preocupe, existe uma solução simples para esse problema.
Substituindo várias ocorrências com a flag /g
Para substituir todas as ocorrências da substring de uma vez, você pode utilizar a flag /g
no final da expressão regular passada como primeiro parâmetro da função replace()
.
Essa flag indica que a função deve procurar todas as ocorrências da substring e substituí-las.
const originalString = 'banana, banana, banana';const newString = originalString.replace(/banana/g, 'maçã');console.log(newString);// "maçã, maçã, maçã"
Nesse exemplo, todas as ocorrências da substring "banana" foram substituídas por "maçã". Note que a flag /g
foi utilizada para indicar que a função deve procurar todas as ocorrências.
Utilizando expressões regulares com a função replace()
Além da simples substituição de substrings, a função replace()
também pode ser usada com expressões regulares mais complexas. Por exemplo, se você quiser substituir todas as letras "a" seguidas de uma ou mais letras "b" por uma letra "c", você pode utilizar a seguinte expressão regular:
const originalString = 'abbabcab';const newString = originalString.replace(/a+b/g, 'c');console.log(newString);// "cbccab"
Nesse exemplo, a expressão regular /a+b/g
encontra todas as ocorrências de "a" seguido de uma ou mais letras "b" e as substitui por "c".
Evitando erros com expressões regulares
Ao utilizar expressões regulares com a função replace()
, é importante estar atento a alguns erros comuns. Um deles é a falta de escape de caracteres especiais. Por exemplo, se você quiser substituir todas as ocorrências da string "$1.99" por "R$ 1,99", é necessário escapar os caracteres especiais "$" e "." na expressão regular:
javascriptCopy code
const originalString = 'O preço é $1.99';const newString = originalString.replace(/\\$1\\.99/g, 'R$ 1,99');console.log(newString);// "O preço é R$ 1,99"
Nesse exemplo, a expressão regular /\\$1\\.99/g
encontra todas as ocorrências da string "$1.99" e as substitui por "R$ 1,99". Note que os caracteres especiais "$" e "." foram escapados com a barra invertida ("") para que a expressão regular funcione corretamente.
Conclusão
A função String.replace()
é uma ferramenta poderosa em JavaScript que permite substituir substrings e expressões regulares em uma string. Utilizando a flag /g
, você pode substituir todas as ocorrências da substring ou expressão regular de uma só vez. Mas lembre-se de estar atento a erros comuns com expressões regulares, como a falta de escape de caracteres especiais.
E aí, já utilizou a função replace()
com a flag /g
antes? Me conta sua experiência lá no Instagram! Se tiver alguma dúvida, não hesite em perguntar.