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.