2009-04-07 5 views
15

Я пытаюсь отформатировать различные номера на моей странице. Эти цифры представляют собой цену, изменение цены или процент. Я знаю, что Javascript имеет функции для ограничения количества десятичных знаков, но есть ли поддержка для других типов форматирования, таких как группировка чисел запятыми, контроль того, отображается ли +/- и т. Д.? Вот то, что я до сих пор:Javascript: простой способ форматирования чисел?

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); } 
}; 

Это хорошо работает, но хотел бы добавить запятые в «цене» форматировщиком, и вы можете видеть, что есть хак в форматтера «priceChg», где я пытаюсь для перемещения знака +/- перед знаком «$».

В принципе, я надеюсь, что есть некоторая библиотека (jQuery в порядке), которая эмулирует класс DecimalFormat Java.

+0

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

ответ

16

Там в NumberFormatter JQuery плагин, подробности ниже:

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

Из приведенной выше ссылке:

Этот плагин NumberFormatter плагин. Форматирование номера, скорее всего, знакомо всем, кто работал с серверным кодом, например Java или PHP, и , который работал с интернационализацией .

EDIT: заменен на более прямой.

+0

Вместо этого вы должны, вероятно, ссылаться на http://plugins.jquery.com/project/numberformatter. –

+0

Вы правы, спасибо за это. Готово. – karim79

+0

Прохладный, это именно то, что я искал. –

4

Нет, нет встроенной поддержки форматирования чисел, но при поиске в googling появится множество фрагментов кода, которые сделают это для вас.

EDIT: Я пропустил последнее предложение вашего сообщения. Попробуйте http://code.google.com/p/jquery-utils/wiki/StringFormat для решения jQuery.

+0

Он не просит встроенной поддержки, он просит библиотеку. –

+2

Сообщение гласит: «Я знаю, что Javascript имеет функции для ограничения количества десятичных знаков, но есть ли поддержка других типов форматирования». Читает, как он спрашивает о встроенной поддержке, если вы не читаете весь пост, как я :) – glomad

1

Также попробуйте dojo.number, у которого есть встроенная поддержка локализации. Это гораздо ближе аналог в Java NumberFormat/DecimalFormat

3

только что закончили библиотеку JS для форматирования чисел Numeral.js. Он обрабатывает десятичные знаки, доллары, проценты и даже форматирование времени.

+0

Спасибо adamwdraper!Мне нужно решение, которое не связано с jQuery. –

Смежные вопросы