Remplazo de una cadena por otra dentro de una tercera en JavaScript (equivalente a str_replace de PHP)

Con esta función JavaScript podemos reemplazar todas las ocurrencias de una cadena por otra, a modo de la orden str_replace de PHP, pero simplificada. En éste caso, no acepta arrays como argumentos, solo strings.

function str_replace(de,a,str) {
return str.split(de).join(a);
}
 
var test="Este es un string de prueba";
var testb = str_replace("un","el",test);
 
// testb será "Este es el string de prueba"
 
Existe otra opción, que además nos permite no diferenciar entre mayúsculas y minúsculas con un 4o parámetro, opcional, puesto a true. Aquí os dejo la función y unos ejemplos de ejecución:

  1. function str_replace(de,a,str,mays) {
  2. var extra='';
  3. if(mays) extra='i';
  4. return eval( "str.replace(/"+de+"/g"+extra+",a)" );
  5. }
  6.  
  7. var test="Este es un string de prueba";
  8. var testb = str_replace("UN","el",test);
  9. // testb será "Este es un string de prueba"
  10. testb = str_replace("UN","el",test,false);
  11. // testb será "Este es un string de prueba"
  12. testb = str_replace("UN","el",test,true);
  13. // testb será "Este es el string de prueba"