[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll [Back]  [Original]

String.prototype.replaceAll() - JavaScript | MDN

Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.

View in English Always switch to English

String.prototype.replaceAll()

Baseline Widely available

This feature is well established and works across many devices and browser versions. Its been available across browsers since agosto de 2020.

El mtodo replaceAll() retorna una nueva cadena con todas las coincidencias de un patrn reemplazadas por un reemplazo. El patrn puede ser una cadena o un objeto RegExp, y el reemplazo puede ser una cadena o una funcin que ser llamada para cada coincidencia. La cadena original permanecer inalterada.

In this article

Prubalo

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 regex
const regex = /Dog/gi;
console.log(paragraph.replaceAll(regex, "ferret"));
// Expected output: "I think Ruth's ferret is cuter than your ferret!"

Sintasix

js
replaceAll(patrn, reemplazo)

Parmetros

patrn

Puede ser una cadena o un objeto con un mtodo Symbol.replace el tpico ejemplo es una expresin regular (regex). Cualquier valor que no tenga el mtodo Symbol.replace ser convertido a una cadena.

Si patrn es una regex, entonces debe tener el parmetro global (g) establecido, o un TypeError es lanzado.

reemplazo

Puede ser una cadena o una funcin. El reemplazo tiene la misma semntica que la de String.prototype.replace().

Valor de retorno

Una nueva cadena, con todas las coincidencias de un patrn reemplazadas por un reemplazo.

Excepciones

TypeError

Lanzado si el patrn es una regex que no tiene el parmetro global (g) configurado (su propiedad flags no contiene "g")

Descripcin

Este mtodo no modifica el valor de la cadena en la que es ejecutado. Regresa una nueva cadena.

A diferencia de replace(), este mtodo reemplazar todas las coincidencias de una cadena, no solo la primera. Esto es especialmente til si la cadena no es estticamente conocida, como llamando al contructor del objeto RegExp() sin escapar caracteres especiales podra cambiar su semntica sin intencin.

js
function unsafeRedactName(text, name) {
  return text.replace(new RegExp(name, "g"), "[REDACTED]");
}
function safeRedactName(text, name) {
  return text.replaceAll(name, "[REDACTED]");
}

const report =
  "A hacker called ha.*er used special characters in their name to breach the system.";

console.log(unsafeRedactName(report, "ha.*er")); // "A [REDACTED]s in their name to breach the system."
console.log(safeRedactName(report, "ha.*er")); // "A hacker called [REDACTED] used special characters in their name to breach the system."

Si el patrn es un objeto con un mtodo Symbol.replace (incluyendo objetos RegExp), ese mtodo es llamado con la cadena objetivo y reemplazo como argumento. Su valor de retorno se convierte en el valor de retorno de replaceAll(). En este caso el comportamiento de replaceAll() es enteramente codificado por el mtodo @@replace, y por lo tanto tendr el mismo resultado que replace() (aparte de la validacin extra de que regex es global).

Si el patrn es una cadena vaca, el reemplazo ser insertado entre cada unidad de cdigo UTF-16, similar al comportamiento de split().

js
"xxx".replaceAll("", "_"); // "_x_x_x_"

Para ms informacin acerca de cmo interactan las propiedades de una regex (especialmente el paramtro sticky), vase RegExp.prototype[@@replace]().

Ejemplos

Usando replaceAll()

js
"aabbcc".replaceAll("b", ".");
// 'aa..cc'

Excepciones de una regex no global

Cuando se usa una expresin regular como valor de bsqueda, sta debe ser global. Esto no funcionar:

js
"aabbcc".replaceAll(/b/, ".");
// TypeError: replaceAll must be called with a global RegExp

Esto s funcionar:

js
"aabbcc".replaceAll(/b/g, ".");
// "aa..cc"

Especificaciones

Specification
ECMAScript 2027 LanguageSpecification
# sec-string.prototype.replaceall

Compatibilidad con navegadores

Vase tambin


Web Proxy Viewer  |  New URL  |  Original Page