2012-07-04 26 views
24

Necesito reemplazar todos los dígitos.JS regex: reemplazar todos los dígitos en la cadena

Mi función solo reemplaza al primer dígito.

var s = "04.07.2012"; 
alert(s.replace(new RegExp("[0-9]"), "X")); // returns "X4.07.2012" 
              // should be XX.XX.XXXX" 
+0

Creo que se necesita la opción de reemplazo global. Y '[0-9]' se puede simplificar a '\ d'. – nhahtdh

Respuesta

49

Es necesario añadir la bandera "global" a su expresión regular:

s.replace(new RegExp("[0-9]", "g"), "X") 

o, quizás más bonito, el uso de la incorporada en el literal la sintaxis de expresiones regulares:

.replace(/[0-9]/g, "X") 
+1

¿Cómo los reemplazaría con un carácter Unicode en lugar de 'X'? Por ejemplo '\ U2022'? – Cmag

+1

respuesta: 'replace (/ [0-9]/g, '\ u2022');' – Cmag

7

Uso

s.replace(/\d/g, "X") 

que sustituirá todas las ocurrencias. El g significa coincidencia global y por lo tanto no se detendrá la coincidencia después de la primera aparición.

O quedarse con su RegExp constructor:

s.replace(new RegExp("\\d", "g"), "X") 
2

El/gmodificador se utiliza para realizar una comparación global (Encontrar todos los partidos en lugar de detenerse después de la primera)

Usted puede utilizar\dde dígitos, ya que es más corto que[0-9].

JavaScript:

var s = "04.07.2012"; 
echo(s.replace(/\d/g, "X")); 

Salida:

XX.XX.XXXX 
2

encontrar los números y luego reemplazados por cadenas que especifican. Esto se logra mediante dos métodos

  1. Uso de una expresión regular literal

  2. Usando objeto palabra clave RegExp

Usando una expresión regular literal:

<script type="text/javascript"> 

var string = "my contact number is 9545554545. my age is 27."; 
alert(string.replace(/\d+/g, "XXX")); 

</script> 

* * Salida: ** mi número de contacto es X XX. mi edad es XXX.

para más detalles:

http://www.infinetsoft.com/Post/How-to-replace-number-with-string-in-JavaScript/1156

Cuestiones relacionadas