webentwicklung-frage-antwort-db.com.de

JS Regex: Ersetzen Sie alle Ziffern in der Zeichenfolge

Ich muss alle Ziffern ersetzen.

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"
28
Keith L.

Sie müssen Ihrer Regex das Flag "global" hinzufügen:

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

oder, vielleicht schöner, mit der eingebauten literalen Regexp-Syntax:

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

Benutzen

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

das wird alle Vorkommnisse ersetzen. Die Variable g bedeutet global match und wird daher nach dem ersten Vorkommen nicht aufhören.

Oder um bei Ihrem RegExp-Konstruktor zu bleiben:

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

The/gModifikator wird verwendet, um eine globale Übereinstimmung durchzuführen (alle Übereinstimmungen finden, anstatt nach der ersten zu stoppen)}

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

JavaScript:

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

Ausgabe:

XX.XX.XXXX
4
Ωmega

finde die Zahlen und ersetze sie durch die angegebenen Zeichenketten. Es wird durch zwei Methoden erreicht

  1. Verwenden eines regulären Ausdrucksliteral

  2. Schlüsselwort RegExp-Objekt verwenden

Verwenden eines regulären Ausdrucksliteral:

<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 XXX. Mein Alter ist XXX.

für mehr Details:

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

3
Mohamed Rasik

Sie haben vergessen, den globalen Operator hinzuzufügen. Benutze das:

var s = "04.07.2012";
alert(s.replace(new RegExp("[0-9]","g"), "X")); 

0
coder