995 Stimmen

Entfernen Sie alle nicht numerischen Zeichen aus einer Zeichenkette in JavaScript

Stellen Sie sich ein Szenario vor, in dem Sie mit JavaScript/ECMAScript alle nicht numerischen Zeichen aus einer Zeichenkette entfernen möchten. Alle Zeichen, die sich im Bereich 0 - 9 aufbewahrt werden sollte.

var myString = 'abc123.8<blah>';

//desired output is 1238

Wie würden Sie dies in einfachem JavaScript erreichen? Bitte denken Sie daran, dass es sich hier um ein Nicht-DOM-Szenario handelt, so dass jQuery und andere Lösungen, die Browser- und Tastendruckereignisse beinhalten, nicht geeignet sind.

1978voto

csj Punkte 20408

Verwenden Sie die Zeichenkette .replace Methode mit einer Regex von \D ist eine Kurzschrift-Zeichenklasse, die auf alle Nicht-Ziffern passt:

myString = myString.replace(/\D/g,'');

479voto

max4ever Punkte 11310

Wenn Sie den Punkt für Fließkommazahlen weglassen müssen, verwenden Sie dies

var s = "-12345.50 €".replace(/[^\d.-]/g, ''); // gives "-12345.50"

82voto

Auraseer Punkte 1175

Verwenden Sie einen regulären Ausdruck, wenn Ihre Skriptimplementierung diesen unterstützt. Etwa so:

myString.replace(/[^0-9]/g, '');

39voto

Christian C. Salvadó Punkte 763569

Sie können eine RegExp verwenden, um ersetzen. alle nicht ziffernbezogenen Zeichen:

var myString = 'abc123.8<blah>';
myString = myString.replace(/[^\d]/g, ''); // 1238

35voto

Jan Hančič Punkte 51654

Etwas in der Art von:

yourString = yourString.replace ( /[^0-9]/g, '' );

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X