Para reemplazar trozos de una cadena en PHP siempre había utilizado str_replace, que simplemente recorre una cadena y reemplaza el trozo que le decimos por otro distinto.
Ejemplo str_replace:
$str = str_replace("hola", "adios", "hola que tal")
echo $str;
// Mostraría adios que tal
En Javascript tenemos la el método replace() del objeto String que funciona del siguiente modo:
str = "hola que tal";
alert(str.replace("hola", "adios"));
// Mostraría adios que tal
Sin embargo este método escrito así solo funciona reemplazando el primer trozo de cadena que encuentra, tal como se muestra en el siguiente ejemplo:
str = "hola que tal hola";
alert(str.replace("hola", "adios"));
// Mostraría adios que tal hola
Sin embargo mirando la documentación de este método me doy cuenta que es posible imitar el funcionamiento que teníamos en PHP con el str_replace. Se puede hacer de este modo:
str = "hola que tal hola"; alert(str.replace(\hola\g, "adios")); // Mostraría adios que tal adios
Eso es todo, además si queremos que el reemplazo no sea case-sensitive, podemos hacerlo del siguiente modo:
str = "hola que tal Hola"; alert(str.replace(\hola\gi, "adios")); // Mostraría adios que tal hola