Gibt es in Javascript eine Funktion zum Formatieren von Zahlen und Zeichenfolgen?
Ich suche nach einem Weg für tausend Trennzeichen für Zeichenfolge oder Zahlen ... (wie String.Format In c #)
javascript
string
numbers
format
LostLord
quelle
quelle
How to print a number with commas as thousands separators in JavaScript
: stackoverflow.com/questions/2901102/…Antworten:
Update (7 Jahre später)
Die in der ursprünglichen Antwort unten zitierte Referenz war falsch. Hierfür gibt es eine eingebaute Funktion, die genau das ist, was Kaiser unten vorschlägt:
toLocaleString
So können Sie tun:
Die unten implementierte Funktion funktioniert ebenfalls, ist aber einfach nicht erforderlich.
(Ich dachte, ich würde vielleicht Glück haben und herausfinden, dass es 2010 notwendig war, aber nein. Nach dieser zuverlässigeren Referenz ist toLocaleString seit ECMAScript 3rd Edition [1999] Teil des Standards, was meiner Meinung nach bedeutet wäre schon in IE 5.5 unterstützt worden.)
Ursprüngliche Antwort
Nach dieser Referenz gibt es keine eingebaute Funktion zum Hinzufügen von Kommas zu einer Zahl. Diese Seite enthält jedoch ein Beispiel dafür, wie Sie es selbst codieren können:
Bearbeiten: Um in die andere Richtung zu gehen (Zeichenfolge mit Komma in Zahl umwandeln), können Sie Folgendes tun:
quelle
(1234567).toLocaleString().replace(/,/g," ",)
für Räume zwischen TausendenWenn Sie Tausende Trennzeichen, Trennzeichen und Dezimaltrennzeichen lokalisieren möchten, gehen Sie wie folgt vor:
Es gibt verschiedene Optionen, die Sie verwenden können (und sogar Gebietsschemas mit Fallbacks):
Details auf der MDN-Infoseite .
Edit: Commentor @Ich mag Serena folgendes:
quelle
Number(yourNumberOrString).toLocaleString()
value.toLocaleString('en')
. Funktioniert auch für Gleitkomma.Ein regulärer Ausdruck kann verwendet werden - besonders nützlich beim Umgang mit großen Zahlen, die als Zeichenfolgen gespeichert sind.
»Ausführliche Regex-Erklärung (regex101.com)
Der Versuch, dies mit einem einzigen regulären Ausdruck (ohne Rückruf) zu handhaben, scheitert an meiner derzeitigen Fähigkeit, da ich in Javascript keinen negativen Rückblick habe. Trotzdem gibt es hier eine weitere prägnante Alternative, die in den meisten allgemeinen Fällen funktioniert - die Berücksichtigung von Dezimalstellen durch Ignorieren von Übereinstimmungen, bei denen der Index der Übereinstimmung nach dem Index eines Zeitraums angezeigt wird.
»Ausführliche Regex-Erklärung (regex101.com)
quelle
Es gibt ein nettes jQuery-Nummern-Plugin: https://github.com/teamdf/jquery-number
Sie können eine beliebige Zahl im gewünschten Format ändern, mit Optionen für Dezimalstellen und Trennzeichen für Dezimalstellen und Tausender:
Sie können es direkt in Eingabefeldern verwenden, was mit denselben Optionen wie oben besser ist:
Oder Sie können mit dem Selektor eine ganze Reihe von DOM-Elementen anwenden:
quelle
Ich benutze das:
Quelle: Link
quelle
'123452343267.0505'.replace(/\B(?=(\d{3})+(?!\d))/g, ","); "123,452,343,267.0,505"
- Beachten Sie das letzte Komma nach dem Dezimalpunkt.quelle
Die Referenz finden Sie hier https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
quelle
Sie können Javascript verwenden. unten ist der Code, es wird nur
accept
numerisch und einsdot
DEMO JSFIDDLE
quelle
quelle
PHP.js hat dazu eine Funktion namens number_format . Wenn Sie mit PHP vertraut sind, funktioniert es genauso .
quelle
Alles was Sie tun müssen, ist wirklich Folgendes :
quelle
toLocaleString()
die keine Kommas hinzufügt, oder es fehlen andere Funktionen im Standard. Es ist einfach, dietoLocaleString
Anwesenheit zu überprüfen, aber nicht die Konformität.Kombination von Lösungen zur Reaktion
quelle
Sie können das ngx-Format-Feld verwenden. Es ist eine Anweisung, den Eingabewert zu formatieren, der in der Ansicht angezeigt wird. Der Eingabewert, der im Backend gespeichert wird, wird nicht manipuliert. Siehe Link hier !
Beispiel:
Um die Demo zu sehen: hier !
quelle
Sie können die folgende Funktion verwenden:
quelle
Die Antworten hier haben mir nicht gefallen, deshalb habe ich eine Funktion erstellt, die für mich funktioniert. Ich möchte nur teilen, falls jemand anderes es nützlich findet.
quelle