Reemplazar caracteres dentro de una cadena con javascript
Para reemplazar caracteres dentro de una cadena de texto con javascript se utiliza la función replace.
Sin embargo por defecto la función replace unicamente va a eliminar la primer ocurrencia del string buscado a menos que se especifique que se deben eliminar todas las ocurrencias del mismo.
Ejemplo:
En este caso se intenta reemplazar todas las ocurrencias del texto abc por un espacio en blanco. Lo primero que hacemos es un replace simple sin embargo esto sólo eliminará la primer ocurrencia del string buscado.
var str = "abc1, abc2, abc3, abc4 y abc5";
str=str.replace("abc"," ");
//str = " 1, abc2, abc3, abc4 y abc5";
Por lo tanto hay que especificar que se quieren eliminar todas las ocurrencias dentro de la cadena. Para esto se debe especificar lo siguiente:
var str = "abc1, abc2, abc3, abc4 y abc5";
str=str.replace(/abc/g," ");
//str = " 1, 2, 3, 4 y 5";
La letra g indica un replace global por lo que todas las coincidencias son reemplazadas. Se puede especificar también gi en caso de que se quiere hacer un replace global sin importar mayúsculas ni minúsculas.
Esto sería útil para casos como el siguiente en el que se quiere reemplazar todas las coincidencias de abc dentro de la cadena independientemente de si está en mayúsculas o minúsculas.
var str = "abc1, ABC2, Abc3, aBc4 y abC5";
str=str.replace(/abc/gi," ");
//str = " 1, 2, 3, 4 y 5";
El otro caso es para cuando quieres reemplazar todos los caracteres contenidos en una variable dentro de una cadena.
Dado que las instrucciones anteriores se colocan entre diagonales en el replace, no se pueden poner variables directamente en el replace por lo que debes hacer lo siguiente:
Ejemplo
var str = "abc1, abc2, abc3, abc4 y abc5";
var buscar="abc"
str=str.replace(new RegExp(buscar,"g") ," ");
//str = " 1, 2, 3, 4 y 5";
Espero les sirva.