Numeral.js — библиотека для форматирования чисел

от автора

На создание библиотеки для удобного форматирования чисел программиста и веб-дизайнера Адама Дрэйпера вдохновила аналогичная библиотека для даты и времени — moment.js. Numeral.js позволяет задавать число знаков после запятой, символы-разделители для дробной части и групп разрядов, формат представления валют, процентов, времени, аббревиатуры для миллионов, миллиардов, мегабайтов и т.п. Кроме того, можно восстанавливать числовые значения из существующего строкового представления. Библиотека распространяется под лицензией MIT.

Numeral работает в браузерах и под Node.js. Подключение библиотеки:

В браузере из cdnjs.com:

<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.4.1/numeral.min.js"></script> 

В Node.js:

npm install numeral 

var numeral = require('numeral'); 

Использование:

var string = numeral(1000).format('0,0');     // '1,000' 
Числа

Число Формат Строка
10000 ‘0,0.0000’ 10,000.0000
10000.23 ‘0,0’ 10,000
-10000 ‘0,0.0’ -10,000.0
10000.1234 ‘0.000’ 10000.123
10000.1234 ‘0[.]00000’ 10000.12340
-10000 ‘(0,0.0000)’ (10,000.0000)
-0.23 ‘.00’ -.23
-0.23 ‘(.00)’ (.23)
0.23 ‘0.00000’ 0.23000
0.23 ‘0.0[0000]’ 0.23
1230974 ‘0.0a’ 1.2m
1460 ‘0 a’ 1 k
-104000 ‘0a’ -104k
1 ‘0o’ 1st
52 ‘0o’ 52nd
23 ‘0o’ 23rd
100 ‘0o’ 100th

Валюта

Число Формат Строка
1000.234 ‘$0,0.00’ $1,000.23
1000.2 ‘0,0[.]00 $’ 1,000.20 $
1001 ‘$ 0,0[.]00’ $ 1,001
-1000.234 ‘($0,0)’ ($1,000)
-1000.234 ‘$0.00’ -$1000.23
1230974 ‘($ 0.00 a)’ $ 1.23 m

Байты

Число Формат Строка
100 ‘0b’ 100B
2048 ‘0 b’ 2 KB
7884486213 ‘0.0b’ 7.3GB
3467479682787 ‘0.000 b’ 3.154 TB

Проценты

Число Формат Строка
1 ‘0%’ 100%
0.974878234 ‘0.000%’ 97.488%
-0.43 ‘0 %’ -43 %
0.43 ‘(0.000 %)’ 43.000 %

Время

Число Формат Строка
25 ’00:00:00′ 0:00:25
238 ’00:00:00′ 0:03:58
63846 ’00:00:00′ 17:44:06

Расформатирование

var string = numeral().unformat('($10,000.00)');      // '-10000' 

Строка Функция Число
‘10,000.123’ .unformat(‘10,000.123’) 10000.123
‘0.12345’ .unformat(‘0.12345’) 0.12345
‘1.23m’ .unformat(‘1.23m’) 1230000
’23rd’ .unformat(’23rd’) 23
‘$10,000.00’ .unformat(‘$10,000.00’) 10000
‘100B’ .unformat(‘100B’) 100
‘3.154TB’ .unformat(‘3.154TB’) 3467859674006
‘-76%’ .unformat(‘-76%’) -0.76
‘2:23:57’ .unformat(‘2:23:57’) 8637

Арифметика

var number = numeral(1000);  var added = number.add(10);      // 1010 

До Функция После
1000 .add(100) 1100
1100 .subtract(100) 1000
1000 .multiply(100) 100000
100000 .divide(100) 1000

Форматирование нулевого значения

var number = numeral(0);  numeral.zeroFormat('N/A');  var zero = number.format('0.0')    // 'N/A' 

Работа с объектами number

Получение числового значения

var number = numeral(1000);  var string = number.format('0,0');    // '1,000'  var value = number.value();    // 1000 

Установка значения

var number = numeral();  number.set(1000);  var value = number.value();    // 1000 

Разность

var number = numeral(1000),     value = 100;  var difference = number.difference(value);    // 900 

Клонирование

var a = numeral(1000); var b = numeral(a); var c = a.clone();  var aVal = a.set(2000).value();    // 2000  var bVal = b.value();    // 1000  var cVal = c.add(10).value();    // 1010 

Локализация

В библиотеку встроены базовые функции локализации. Уже есть рудиментарная поддержка русского языка.

// load a language numeral.language('fr', {     delimiters: {         thousands: ' ',         decimal: ','     },     abbreviations: {         thousand: 'k',         million: 'm'     },     ordinal : function (number) {         return number === 1 ? 'er' : 'ème';     },     currency: {         symbol: '€'     } });  // switch between languages numeral.language('fr'); 

Ссылки

Гитхаб. Официальный сайт.

ссылка на оригинал статьи http://habrahabr.ru/post/163321/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *