Compartir en Twitter
Go to Homepage

CÓMO USAR REPLACEALL EN JAVASCRIPT PARA REEMPLAZAR TEXTO

October 19, 2025

Introducción al método replaceAll en JavaScript

El método replaceAll en JavaScript es una herramienta poderosa para reemplazar todas las instancias de una subcadena o patrón en un string. Introducido en ES2021, este método simplifica la tarea de realizar reemplazos globales de manera directa y eficiente, eliminando la necesidad de recurrir a soluciones más complejas como expresiones regulares en muchos casos. En este tutorial, exploraremos cómo funciona replaceAll, su sintaxis, casos de uso con cadenas y expresiones regulares, y las diferencias con el método replace. Este contenido está diseñado para desarrolladores que buscan manipular cadenas de texto de forma práctica y efectiva en proyectos web modernos, con ejemplos claros y actualizados al contexto tecnológico de octubre de 2025.

¿Qué es el método replaceAll en JavaScript?

El método replaceAll es parte de la biblioteca estándar de JavaScript y permite reemplazar todas las instancias de una subcadena o patrón en un string. A diferencia de otros métodos, replaceAll está diseñado específicamente para realizar sustituciones globales sin necesidad de configuraciones adicionales, lo que lo hace más intuitivo que su contraparte replace en muchos escenarios. Este método es compatible con todos los navegadores modernos, incluyendo Chrome, Firefox, Safari y Edge, según los estándares de compatibilidad de octubre de 2025. Sin embargo, para aplicaciones destinadas a navegadores antiguos, como versiones de Internet Explorer anteriores a Edge, se recomienda verificar la compatibilidad o usar alternativas como replace con expresiones regulares.

La sintaxis de replaceAll es sencilla y se define como sigue:

string.replaceAll(patrón, reemplazo);

En esta estructura:

  • string: Es la cadena original en la que se aplicará el método.
  • patrón: Puede ser una subcadena o una expresión regular que representa el texto a reemplazar. Si se usa una expresión regular, debe incluir la bandera g (global) para evitar errores.
  • reemplazo: Es el texto o una función que sustituirá al patrón encontrado.

Es importante destacar que replaceAll no modifica la cadena original, sino que devuelve una nueva cadena con los reemplazos realizados. Esto asegura que el string original permanezca intacto, siguiendo el principio de inmutabilidad de las cadenas en JavaScript.

Uso de replaceAll con una cadena como primer parámetro

El caso más común de uso de replaceAll es cuando el patrón es una subcadena. Este enfoque es ideal para reemplazar palabras o caracteres específicos en un texto. Veamos un ejemplo práctico:

const textoOriginal = "Me gustan los perros porque los perros son adorables!";
const patron = "perros";
const reemplazo = "gatos";
const textoNuevo = textoOriginal.replaceAll(patron, reemplazo);

console.log(textoNuevo);
// Salida: Me gustan los gatos porque los gatos son adorables!

En este ejemplo, se reemplazan todas las instancias de la palabra “perros” por “gatos”. La variable textoOriginal permanece sin cambios, y el resultado se almacena en textoNuevo. Este método es particularmente útil para tareas como la actualización de contenido dinámico en aplicaciones web, como reemplazar palabras en un editor de texto o en la generación de plantillas HTML.

Un aspecto clave a considerar es que el reemplazo con una subcadena es sensible a mayúsculas. Si el patrón no coincide exactamente con el texto en la cadena (incluyendo mayúsculas y minúsculas), no se realizará el reemplazo. Por ejemplo:

const textoOriginal = "Me gustan los Perros porque los perros son adorables!";
const patron = "perros";
const reemplazo = "gatos";
const textoNuevo = textoOriginal.replaceAll(patron, reemplazo);

console.log(textoNuevo);
// Salida: Me gustan los Perros porque los gatos son adorables!

En este caso, la palabra “Perros” (con “P” mayúscula) no se reemplaza porque el patrón “perros” es estrictamente en minúsculas. Para manejar casos donde la sensibilidad a mayúsculas no es deseada, se pueden usar expresiones regulares, como veremos más adelante.

Uso de replaceAll con una expresión regular como primer parámetro

El método replaceAll también permite usar expresiones regulares como patrón, lo que proporciona mayor flexibilidad para reemplazos más complejos. Las expresiones regulares son secuencias de caracteres que definen un patrón de búsqueda, ideales para casos donde se necesita buscar coincidencias más allá de una subcadena literal. La sintaxis básica es:

string.replaceAll(/patrón/g, reemplazo);

Es obligatorio incluir la bandera g (global) cuando se usa una expresión regular, ya que replaceAll está diseñado para reemplazar todas las coincidencias, y sin esta bandera, JavaScript lanzará un TypeError. Veamos un ejemplo:

const textoOriginal = "Me gustan los perros porque los perros son adorables!";
const patron = /perros/g;
const reemplazo = "gatos";
const textoNuevo = textoOriginal.replaceAll(patron, reemplazo);

console.log(textoNuevo);
// Salida: Me gustan los gatos porque los gatos son adorables!

En este caso, el patrón /perros/g busca todas las instancias de “perros” en la cadena. Si omitimos la bandera g, el código fallará:

const textoOriginal = "Me gustan los perros porque los perros son adorables!";
const patron = /perros/;
const reemplazo = "gatos";
const textoNuevo = textoOriginal.replaceAll(patron, reemplazo);

// Error: Uncaught TypeError: String.prototype.replaceAll called with a non-global RegExp argument

Para manejar casos donde la sensibilidad a mayúsculas no es deseada, se puede agregar la bandera i (insensible a mayúsculas) junto con la bandera g. Por ejemplo:

const textoOriginal = "Me gustan los Perros porque los perros son adorables!";
const patron = /perros/gi;
const reemplazo = "gatos";
const textoNuevo = textoOriginal.replaceAll(patron, reemplazo);

console.log(textoNuevo);
// Salida: Me gustan los gatos porque los gatos son adorables!

Aquí, el patrón /perros/gi coincide con “perros” y “Perros” indistintamente, gracias a la bandera i. Esto es útil para aplicaciones donde el texto puede variar en formato, como en formularios de usuario o sistemas de búsqueda.

Diferencias entre replaceAll y replace

Un punto importante al trabajar con manipulación de cadenas en JavaScript es entender las diferencias entre replaceAll y replace. Mientras que replaceAll sustituye todas las instancias de un patrón de forma predeterminada, replace solo reemplaza la primera ocurrencia a menos que se use una expresión regular con la bandera g. Veamos ejemplos para ilustrar esta diferencia.

Con replace usando una subcadena:

const textoOriginal = "Me gustan los perros porque los perros son adorables!";
const patron = "perros";
const reemplazo = "gatos";
const textoNuevo = textoOriginal.replace(patron, reemplazo);

console.log(textoNuevo);
// Salida: Me gustan los gatos porque los perros son adorables!

En este caso, solo la primera instancia de “perros” se reemplaza. Para lograr un reemplazo global con replace, se debe usar una expresión regular con la bandera g:

const textoOriginal = "Me gustan los perros porque los perros son adorables!";
const patron = /perros/g;
const reemplazo = "gatos";
const textoNuevo = textoOriginal.replace(patron, reemplazo);

console.log(textoNuevo);
// Salida: Me gustan los gatos porque los gatos son adorables!

Con una expresión regular sin la bandera g, replace también reemplaza solo la primera ocurrencia:

const textoOriginal = "Me gustan los perros porque los perros son adorables!";
const patron = /perros/;
const reemplazo = "gatos";
const textoNuevo = textoOriginal.replace(patron, reemplazo);

console.log(textoNuevo);
// Salida: Me gustan los gatos porque los perros son adorables!

En resumen, replaceAll elimina la necesidad de usar expresiones regulares para reemplazos globales cuando se trabaja con subcadenas, lo que simplifica el código y mejora la legibilidad. Sin embargo, replace sigue siendo útil en escenarios donde solo se desea reemplazar la primera ocurrencia o cuando se trabaja con navegadores que no soportan replaceAll.

Casos prácticos y aplicaciones de replaceAll

El método replaceAll tiene numerosas aplicaciones en el desarrollo web moderno. Algunos casos prácticos incluyen:

  • Reemplazo de contenido dinámico: Cambiar palabras o frases en tiempo real en interfaces de usuario, como en editores de texto o aplicaciones de chat.
  • Sanitización de datos: Eliminar o reemplazar caracteres no deseados en entradas de formularios, como espacios múltiples o palabras prohibidas.
  • Generación de URLs: Reemplazar espacios o caracteres especiales por guiones en slugs de URL.
  • Procesamiento de plantillas: Sustituir marcadores de posición en plantillas HTML o correos electrónicos automatizados.

Por ejemplo, para generar un slug de URL:

const titulo = "Cómo aprender JavaScript en 2025";
const slug = titulo.replaceAll(" ", "-").toLowerCase();

console.log(slug);
// Salida: cómo-aprender-javascript-en-2025

En este caso, replaceAll reemplaza todos los espacios por guiones, un paso común en la creación de URLs amigables para SEO.

Consideraciones de compatibilidad y rendimiento

Aunque replaceAll es compatible con navegadores modernos en 2025, es importante verificar la compatibilidad si el proyecto debe soportar navegadores antiguos o entornos específicos, como versiones obsoletas de Node.js. Para estos casos, una alternativa es usar replace con una expresión regular y la bandera g, como se mostró anteriormente. En términos de rendimiento, replaceAll es generalmente más eficiente para reemplazos de subcadenas, ya que está optimizado para este propósito, mientras que las expresiones regulares pueden ser más lentas en cadenas muy largas o patrones complejos.

Para verificar la compatibilidad en un entorno específico, puedes usar herramientas como Can I Use o consultar la documentación de MDN. En octubre de 2025, replaceAll tiene un soporte del 95% o más en navegadores globales, según datos de compatibilidad recientes.

Conclusiones

El método replaceAll en JavaScript es una herramienta esencial para desarrolladores que necesitan realizar reemplazos globales en cadenas de texto de forma eficiente. Su sintaxis simple y su capacidad para trabajar con subcadenas y expresiones regulares lo convierten en una opción versátil para una amplia gama de aplicaciones, desde la manipulación de texto en interfaces de usuario hasta la generación de URLs optimizadas. Comparado con replace, ofrece una solución más directa para reemplazos globales, especialmente cuando se trabaja con subcadenas. Sin embargo, es crucial considerar la compatibilidad en proyectos que deben soportar navegadores antiguos. Con los ejemplos y casos prácticos presentados, los desarrolladores pueden implementar replaceAll con confianza en sus proyectos, aprovechando su simplicidad y potencia para optimizar el manejo de cadenas en JavaScript.