Stellen Sie sich ein Nicht-DOM-Szenario vor, in dem Sie alle nicht numerischen Zeichen mit JavaScript / ECMAScript aus einer Zeichenfolge entfernen möchten. Alle Zeichen, die sich in Reichweite befinden, 0 - 9
sollten beibehalten werden.
var myString = 'abc123.8<blah>';
//desired output is 1238
Wie würden Sie dies in einfachem JavaScript erreichen? Bitte denken Sie daran, dass dies ein Nicht-DOM-Szenario ist, sodass jQuery und andere Lösungen mit Browser- und Tastendruckereignissen nicht geeignet sind.
javascript
string
p.campbell
quelle
quelle
\D
?replace
mit genau dieser Syntax in allen Browsern? Anscheinend erinnere ich mich, dass ichobject has no method 'replace'
eine ältere Version von IE erhalten habe, wenn ich diese mit Text verwendet habe, den ich mit jQuery gepackt habe ... oder so ähnlich.Wenn Sie dies benötigen, um den Punkt für Gleitkommazahlen zu belassen, verwenden Sie dies
quelle
"aaa 2.9px of bbb.".replace(/[^\d.-]/g, '')
→2.9.
Sollte einen String-
(negative) Zahl Fall :)parseFloat("-1234.5.50 €".replace(/[^\d.-]/g, ''))
Verwenden Sie einen regulären Ausdruck, wenn Ihre Skriptimplementierung diese unterstützt. Etwas wie:
quelle
Sie können RegExp verwenden, um alle nichtstelligen Zeichen zu ersetzen :
quelle
Etwas in der Art von:
quelle
yourString = yourString.replace ( /[^0-9.]/g, '' );
Versuchen
Code-Snippet anzeigen
quelle
In Angular / Ionic / VueJS habe ich mir gerade eine einfache Methode ausgedacht:
Verwendung in der Ansicht:
quelle
Leider hat keine der obigen Antworten für mich funktioniert.
Ich wollte Währungszahlen aus Zeichenfolgen wie
$123,232,122.11
(1232332122.11) oderUSD 123,122.892
(123122.892) oder einer beliebigen Währung wie₹ 98,79,112.50
(9879112.5) konvertieren, um eine Zahlenausgabe einschließlich des Dezimalzeigers zu erhalten.Musste meine eigene Regex machen, die ungefähr so aussieht:
quelle
Kurze Funktion zum Entfernen aller nicht numerischen Zeichen, aber Beibehalten der Dezimalstelle (und Zurückgeben der Zahl):
quelle
Wir sind in 2017 jetzt können Sie auch ES2016 verwenden
oder
Das Ergebnis ist
quelle