miércoles, 7 de agosto de 2013

Reemplazar todos los caracteres con javascript

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.

39 comentarios:

  1. Muchas gracias amigo me sirvío mucho, muy utíl!

    ResponderBorrar
  2. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  3. Gracias, me sirvió mucho para remplazar todas las palabras con una variable :D ♥

    ResponderBorrar
  4. ¡Justo lo que buscaba! Mil gracias.

    ResponderBorrar
  5. hola muy bueno el ejemplo, pero ahora si quiero hacer el reemplazo de varios caracteres , mar%5o gonzal%2z r%5o
    siguiendo el ejemplo:

    var str = "mar%5o gonzal%2z r%5o";
    str=str.replace(/%5/g,"i");
    //str = " mario gonzal%2z rio";

    pero %2 como lo reemplazo en la misma cadena?? o tendría que anidar el "replace"?

    Desde ya Gracias

    ResponderBorrar
    Respuestas
    1. Hola. Puedes anidar o repetir el replace.

      var str = "mar%5o gonzal%2z r%5o";
      str=str.replace(/%5/g,"i");
      str=str.replace(/%2/g,"e");
      //str = " mario gonzalez rio";

      Borrar
  6. quiero cambiar las letras de un texto es decir
    "Hola amigos"
    reemplazarla por otras letras
    tengo esto:
    textoc=document.getElementById("texto").value.replace(/a/gi,"b").replace(/b/gi,"c");
    pero al reemplazar la letra "a" me pone la "c" puesto que cambio por "b" yluego la "b" a "c"

    ResponderBorrar
    Respuestas
    1. Hola Vangel :) Lo que pasa que va ejecutando el replace de izquierda a derecha por eso termina con c: a>b>c

      Borrar
  7. textoc=document.getElementById("texto").value.replace(/b/gi,"b").replace(/a/gi,"b");

    ResponderBorrar
  8. excelente me sirvio, pro como hacer para eliminar un enter de una cadena?

    ResponderBorrar
  9. Hola Martin. Si quisiera reemplazar Ciudadela de Menorca por solo Menorca cómo haría?

    ResponderBorrar
    Respuestas
    1. Hola Gaz. Puedes intentar esto:

      var str = "Ciudadela de Menorca";
      str=str.replace("Ciudadela de Menorca","Menorca");

      Borrar
  10. Excelente información me sirvió mucho, gracias y sigue compartiendo tu talento, saludos.

    ResponderBorrar
  11. Gracias si me sirvio mucho, vas al grano

    ResponderBorrar
  12. Muchas gracias, me sirvió muchísimo.

    ResponderBorrar
  13. Perfecto, gracias por compartir tus conocimientos

    ResponderBorrar
  14. 2022, y sigue dando fuerte jejeje, muchas gracias, larga vida a Javascript

    ResponderBorrar
  15. Muchas gracias por su tiempo @Martin Hernandez, ahora tengo un inconveniente, quiero reemplazar el texto de una posición de un string, en una hora militar que es pm, debo sumarle 12 horas, es decir si la hora recibida es (11:00:00p.m) debo sumarle a 11 12, para que me de el resultado en formato de 24 horas (23:00:00).

    ResponderBorrar
  16. Muchísimas gracias!!! Es justo lo que buscaba!

    ResponderBorrar