Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
String.prototype.replaceAll()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since agosto de 2020.
O métodoreplaceAll() retorna uma nova string com todas as ocorrências de um padrão substituídas por uma substituição. O padrão pode ser uma string ou umaRegExp, e a substituição pode ser uma string ou uma função a ser chamada para cada ocorrência.
Astring original é mantida sem modificação.
In this article
Experimente
const paragraph = "I think Ruth's dog is cuter than your dog!";console.log(paragraph.replaceAll("dog", "monkey"));// Expected output: "I think Ruth's monkey is cuter than your monkey!"// Global flag required when calling replaceAll with regexconst regex = /Dog/gi;console.log(paragraph.replaceAll(regex, "ferret"));// Expected output: "I think Ruth's ferret is cuter than your ferret!"Sintaxe
const newStr = str.replaceAll(regexp|substr, newSubstr|function)
Nota:Quando usar umaregexp, você deve colocar o sinalizador (flag) global "g". Do contrário, será retornado umTypeError: "replaceAll must be called with a global RegExp".
Parâmetros
regexp(padrão)Uma
RegExpou literal com o sinalizador (flag) global. As ocorrências serão substituídas pornewSubstrou pelo valor retornado dafunction(função) especificada.substr(padrão)Uma
Stringque deve ser substituída pornewSubstr. É tratada como uma string literal e não é interpretada como uma expressão regular (RegExp).newSubstr(substituição)É a
Stringque substitui asubstringespecificada pelo parâmetroregexpousubstr. Um número de padrões especiais para substituição são suportados; veja a seção "Especificando uma string como parâmetro
" abaixo.
function(substituição)Uma função a ser chamada retornando a nova
substringa ser usada para substituir as correspondências para a dadaregexpousubstr. Os argumentos passados para esta função são descritos na seção "Especificando uma função como parâmetro" abaixo.
Valor de retorno
Um novastring, com todas as ocorrências de um padrão substituído por uma substituição.
Descrição
Este método não muda o objetoString original. Ele simplesmente retorna uma novastring.
Especificando uma string como parâmetro
Astring de substituição pode incluir os seguimentos padrões especiais de substituição:
| Padrão | Insere |
|---|---|
$$ | Insere um"$". |
$& | Insere asubstring correspondente. |
$` | Insere a porção dastring que precede asubstring correspondente. |
$' | Insere a porção dastring que sucede asubstring correspondente. |
$n | Onden é um inteiro positivo menor que 100, insere an-ésimastring submatch entre parênteses, desde que o primeiro argumento seja um objetoRegExp. Note que isso é indexado começando pelo1. |
Especificando uma função como parâmetro
Você pode especificar uma função como segundo parâmetro. Neste caso, a função será chamada depois da ocorrência ter sido encontrada. O resultado da função (valor de retorno) será usado como umastring para substituição. (Nota: Os padrões especiais mencionados acimanão se aplicam neste caso.)
Note que a função será chamada múltiplas vezes para cada ocorrência a ser substituída se a expressão regular no primeiro parâmetro for global "g".
Os argumentos para funções são os seguintes:
| Nome possível | Valor fornecido |
|---|---|
match | Asubstring correspondida. (Corresponde ao$& acima.) |
p1, p2, ... | An-ésima string encontrada por um grupo de captura entre parênteses, desde que o primeiro argumento parareplace() seja umaRegExp. (Corresponde a$1,$2, etc. acima.) Por exemplo, se/(\a+)(\b+)/, foi dado,p1 é a correspondência para\a+, ep2 para\b+. |
offset | O deslocamento da substring correspondente em toda a string sendo examinada. (Por exemplo, se toda a string for 'abcd' e a substring correspondente for 'bc', este argumento será1.) |
string | Astring inteira será examinada. |
(O número exato de argumentos depende se o primeiro argumento é um objetoRegExp — e, se então, quantassubcorrespondências entre parênteses são especificadas.)
Exemplos
>UsandoreplaceAll()
"aabbcc".replaceAll("b", ".");// 'aa..cc'RegExp sem flag "g" retorando erro
Ao usar uma expressão regular para realizar uma pesquisa, a mesma deve conter a flag global "g". O código abaixo não irá funcionar:
'aabbcc'.replaceAll(/b/, '.');TypeError: replaceAll must be called with a global RegExpJá o código abaixo vai funcionar:
"aabbcc".replaceAll(/b/g, ".");("aa..cc");Especificações
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-string.prototype.replaceall> |