2012-07-04 9 views
24

Ich muss alle Ziffern ersetzen.JS Regex: Ersetzen Sie alle Ziffern in der Zeichenfolge

Meine Funktion ersetzt nur die erste Ziffer.

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

Ich glaube, Sie die globale Option ersetzen müssen. Und '[0-9]' kann zu '\ d' vereinfacht werden. – nhahtdh

Antwort

49

Sie müssen die "global" Flagge zu Ihrem regulären Ausdruck hinzuzufügen:

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

oder vielleicht schönere, die mit dem integrierten in wörtlichen regexp-Syntax:

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

Wie würde ich sie anstelle von 'X' durch ein Unicode-Zeichen ersetzen? Zum Beispiel '\ U2022'? – Cmag

+1

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

7

Verwenden

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

, die alle Vorkommen ersetzen wird. Die g bedeutet globale Übereinstimmung und wird daher nach dem ersten Auftreten nicht mehr übereinstimmen.

Oder mit Ihrem RegExp Konstruktor zu bleiben:

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

Die/gModifikator wird verwendet, um ein globales Spiel auszuführen (alle Spiele finden statt nach dem ersten Anhalten)

Sie\dfür digit verwenden können, da sie kürzer als[0-9]ist.

JavaScript:

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

Ausgang:

XX.XX.XXXX 
2

die Zahlen finden und dann mit Strings ersetzt, die angegeben wird. Es ist

durch zwei Methoden erreicht
  1. einen regulären Ausdruck wörtlichen

  2. Mit Stichwort RegExp Objekt

Mit einem regulären Ausdruck wörtlichen:

<script type="text/javascript"> 

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

</script> 

* * Ausgabe: ** Meine Kontaktnummer ist X XX. Mein Alter ist XXX.

für weitere Informationen:

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

Verwandte Themen