Avatar ·

Cómo reemplazar todas las ocurrencias de una subcadena en una cadena JavaScript

¡Hola a todos! Soy nuevo en JavaScript y me encontré con este problema: necesito reemplazar todas las ocurrencias de una palabra o carácter específico en una cadena. Intenté usar el método replace(), pero solo reemplaza la primera coincidencia. Aquí hay un ejemplo de mi código: ```javascript let text = "Я люблю JavaScript. JavaScript — это круто!"; let newText = text.replace("JavaScript", "Python"); console.log(newText); // Output: "Я люблю Python. JavaScript — это круто!" ``` Como pueden ver, solo se reemplazó la primera palabra "JavaScript", mientras que la segunda permaneció. ¿Cómo puedo hacer para que se reemplacen todas las ocurrencias? He oído que se pueden usar expresiones regulares, pero todavía no las entiendo muy bien. ¿Hay una forma más simple? ¿O es necesario aprender RegExp? Agradecería una explicación clara con ejemplos. ¡Gracias! <<>>

Solución: método replace() con expresión regular y bandera g

Tiene toda la razón: el método estándar replace() sin parámetros adicionales solo reemplaza la primera coincidencia. Para reemplazar todas las ocurrencias, necesita usar una expresión regular con la bandera global g. Por ejemplo:

let text = "Я люблю JavaScript. JavaScript — это круто!";
let newText = text.replace(/JavaScript/g, "Python");
console.log(newText); // Output: "Я люблю Python. Python — это круто!"

La bandera g (global) le dice a JavaScript que busque todas las coincidencias en la cadena, no solo la primera. Si también necesita ignorar mayúsculas/minúsculas, agregue la bandera i (insensible): /JavaScript/gi.