Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

626
Vistas
Javascript .replaceAll() no es un error de tipo de función

La página de documentación: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll

 let string = ":insertx: :insertx: :inserty: :inserty: :insertz: :insertz:"; let newstring = string.replaceAll(":insertx:", 'hello!');

Cuando ejecuto esto, recibo Uncaught TypeError: string.replaceAll is not a function . Tal vez no entiendo qué es un prototipo, pero la función parece ser un método de cadena que está disponible para su uso.

Estoy usando Chrome.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Use replace con una expresión regular con el modificador global para una mejor compatibilidad con el navegador. (Consulte la tabla de compatibilidad de navegadores en MDN para ver qué versión de cada navegador comenzó a admitir el método replaceAll ).

 let string = ":insertx: :insertx: :inserty: :inserty: :insertz: :insertz:"; let newstring = string.replace(/:insertx:/g, 'hello!'); console.log(newstring);

Para una solución más genérica, podemos escapar de los metacaracteres de expresiones regulares y usar el constructor RegExp . También puede agregar la función a String.prototype como un polyfill.

(Es necesario escapar de la cadena para reemplazar, de modo que los caracteres que tienen significados especiales en las expresiones regulares se interpreten literalmente, por ejemplo . se referirán solo a los puntos reales en lugar de a cualquier carácter).

 //Taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions function escapeRegExp(string) { return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string } function replaceAll(str, match, replacement){ return str.replace(new RegExp(escapeRegExp(match), 'g'), ()=>replacement); } console.log(replaceAll('abcde', '.', '__')); console.log(replaceAll('abcde', '.', '$&'));

Puede encontrar una cuña que cumpla con las especificaciones aquí .

over 4 years ago · Santiago Trujillo Denunciar

0

.replaceAll estará disponible a partir de Chrome 85. La versión actual es 83.

Si descarga Google Chrome Canary (que está en la versión 86), podrá ver que su código funciona bien. Firefox está en la versión 78, y dado que .replaceAll ha estado disponible a partir de la versión 77, también funciona allí. También funcionará en el Safari actual. Microsoft Edge lo tiene como no compatible.

Encontrará versiones de navegador compatibles en la parte inferior del artículo en su pregunta.

over 4 years ago · Santiago Trujillo Denunciar

0

Si no desea actualizar su Chrome ni usar expresiones reg (ya que tienen menos rendimiento), también puede hacer esto:

 let string = ":insertx: :insertx: :inserty: :inserty: :insertz: :insertz:"; let newstring = string.split(":insertx:").join('hello!');

Y, por supuesto, puede adjuntarlo al prototipo de String si lo desea en todas partes. Pero dado que el replaceAll real tiene más funciones (admite expresiones regulares), en cambio, estaría más seguro haciendo:

 String.prototype.replaceAllTxt = function replaceAll(search, replace) { return this.split(search).join(replace); }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda