2009-04-07 13 views
15

Ich versuche verschiedene Zahlen auf meiner Seite zu formatieren. Diese Zahlen stellen entweder einen Preis, eine Preisänderung oder einen Prozentsatz dar. Ich weiß, Javascript hat Funktionen, um die Anzahl der Dezimalstellen zu begrenzen, aber gibt es irgendeine Unterstützung für andere Arten der Formatierung, wie Gruppierung von Zahlen mit Kommas, Steuern, ob die +/- angezeigt wird, etc? Hier ist, was ich bisher:Javascript: Leichtere Art, Zahlen zu formatieren?

var FORMATTER = { 
    price  : function(value) { return '$' + value.toFixed(2); }, 
    pricePer : function(value) { return (value * 100).toFixed(2) + '%'; }, 
    priceChg : function(value) { return (value >= 0 ? '+' : '-') + '$' + Math.abs(value).toFixed(2); } 
}; 

Es funktioniert OK, aber es möchte Komma zu dem ‚Preis‘ Formatierer hinzufügen, und Sie können sehen, dass es ein Hack in der ‚priceChg‘ Formatierer, wo ich versuche, um das Vorzeichen vor dem '$' Zeichen zu bewegen.

Grundsätzlich hoffe ich, dass es eine Bibliothek gibt (jQuery ist OK), die die DecimalFormat-Klasse von Java emuliert.

+0

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat – zloctb

Antwort

16

Es gibt die NumberFormatter jQuery-Plugin, Details unter:

https://code.google.com/p/jquery-numberformatter/

Aus dem obigen Link:

Dieses Plugin ist ein NumberFormatter Plugin. Zahlenformatierung ist wahrscheinlich vertraut mit jedem, der mit serverseitigen Code wie Java oder PHP und gearbeitet hat, der mit Internationalisierung gearbeitet hat.

EDIT: Ersetzt den Link durch einen direkteren.

+0

Sie sollten wahrscheinlich zu http://plugins.jquery.com/project/numberformatter stattdessen verbinden. –

+0

Sie haben Recht, danke dafür. Erledigt. – karim79

+0

Cool, genau das habe ich gesucht. –

4

Nein, es gibt keine integrierte Unterstützung für die Zahlenformatierung, aber das Googlen wird eine Menge Code-Snippets enthalten, die dies für Sie erledigen.

EDIT: Ich habe den letzten Satz Ihres Beitrags verpasst. Versuchen Sie http://code.google.com/p/jquery-utils/wiki/StringFormat für eine jQuery-Lösung.

+0

Er fragt nicht nach integrierter Unterstützung, er fragt nach einer Bibliothek. –

+2

Der Beitrag sagt "Ich weiß Javascript hat Funktionen, um die Anzahl der Dezimalstellen zu begrenzen, aber gibt es keine Unterstützung für andere Arten der Formatierung". Liest, wie er nach eingebauter Unterstützung fragt, wenn Sie nicht den ganzen Pfosten wie mich lesen :) – glomad

1

Versuchen Sie auch dojo.number, die integrierte Lokalisierungsunterstützung hat. Es ist ein viel näher analog zu Java Number/DecimalFormat

3

Nur eine js Bibliothek für Formatierung von Zahlen Numeral.js abgeschlossen werden. Es verarbeitet Dezimalzahlen, Dollars, Prozentsätze und sogar Zeitformatierungen.

+0

Danke adamwdraper!Ich brauchte eine Lösung, die jQuery nicht einschloss. –

Verwandte Themen