Substituir todas as ocorrências de uma string com JavaScript
341d atrás
Em browsers modernos você pode simplesmente usar a função replaceAll do #JavaScript.
Considere a seguinte string:
const myStr = 'abc olá abc teste abc replace abc';
Agora vamos criar uma função que substitui todas as ocorrências:
function substituirTodos(str, pattern, replacement) {
return pattern.replaceAll(pattern, replacement);
}
- str: a string em que será feita a busca e substituição
- pattern: o padrão que você quer encontrar e substituir
- replacement: a string que será colocada no lugar
Caso você queira substituir todas ocorrências de "abc" com "efg" você chamar a função substituirTodos assim:
substituirTodos(myStr, 'abc', 'efg'); // efg olá efg teste efg replace efg
Browsers antigos
Alguns browsers não tem a função replaceAll. Nesse caso, você pode escrever a função substituirTodos da seguinte forma para compatibilidade:
function substituirTodos(str, pattern, replacement) {
return str.replace(new RegExp(pattern, 'g'), replacement);
}
Se o parâmetro "pattern" puder receber strings com caracteres especiais, você terá que tratá-los, a função ficaria dessa forma:
function replaceAll(str, pattern, replacement) {
return str.replace(new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\!code1!amp;'), 'g'), replacement);
}
Lembrando que tanto a função para browsers atuais e as 2 implementações para browsers antigos são chamadas da mesma forma, e retornam os mesmos resultados.
Referências
Para mais informações acesse a documentação:
String.prototype.replaceAll() - JavaScript | MDN
The replaceAll() method of String values returns a new string with all matches of a pattern replaced by a replacement. The pattern can be a string or a RegExp, and the replacement can be a string or a function to be called for each match. The original string is left unchanged.
Comentários (0)