ylbtech-JavaScript-Tool:Numeral.js |
A javascript library for formatting and manipulating numbers.
1. # Use it |
npm install numeral
var numeral = require('numeral');
2. # Create |
var myNumeral = numeral(1000);var value = myNumeral.value();// 1000var myNumeral2 = numeral('1,000');var value2 = myNumeral2.value();// 1000
3. # Format |
var string = numeral(1000).format('0,0');// '1,000'
Numbers
Currency
Bytes
Percentages
Time
Exponential
4. # Founctions |
Value
The value is always available.
var number = numeral(1000);var string = number.format('0,0');// '1,000'var value = number.value();// 1000
Manipulate
Not that you will use these often, but they're there when you need them.
var number = numeral(1000);var added = number.add(10);// 1010
Set
Set the value of your numeral object.
var number = numeral();number.set(1000);var value = number.value();// 1000
Difference
Find the difference between your numeral object and a value
var number = numeral(1000), value = 100;var difference = number.difference(value);// 900
Clone
Go ahead and clone any numeral object while you're at it.
var a = numeral(1000);var b = numeral(a);var c = a.clone();var aVal = a.set(2000).value();// 2000var bVal = b.value();// 1000var cVal = c.add(10).value();// 1010
5. # Settings |
Default Formatting
Set a default format so you can use .format() without a string. The default format to '0,0'
var number = numeral(1000);number.format();// '1,000'numeral.defaultFormat('$0,0.00');number.format();// '$1,000.00'
Custom Zero and Null Formatting
Set a custom output when formatting numerals with a value of 0 or null
var number = numeral(0);var nullNumber = numeral(null);numeral.zeroFormat('N/A');numeral.nullFormat('N/A');var zero = number.format('0.0')// 'N/A'var na = nullNumber.format('0.0')// 'N/A'
6. Locales |
Let's make this useable all over the place!
// load a localenumeral.register('locale', 'fr', { delimiters: { thousands: ' ', decimal: ',' }, abbreviations: { thousand: 'k', million: 'm', billion: 'b', trillion: 't' }, ordinal : function (number) { return number === 1 ? 'er' : 'ème'; }, currency: { symbol: '€' }});// switch between localesnumeral.locale('fr');
As I am not fluent in every locale on the planet, please feel free to create locale files of your own by submitting a pull request. Don't forget to create both the locale file (example: locales/fr.js) and the locale test (example: tests/locales/fr.js). Thanks for helping out.
7. # Fomates |
Adding your own custom formats is as easy as adding a locale.
// load a formatnumeral.register('format', 'percentage', { regexps: { format: /(%)/, unformat: /(%)/ }, format: function(value, format, roundingFunction) { var space = numeral._.includes(format, ' %') ? ' ' : '', output; value = value * 100; // check for space before % format = format.replace(/\s?\%/, ''); output = numeral._.numberToFormat(value, format, roundingFunction); if (numeral._.includes(output, ')')) { output = output.split(''); output.splice(-1, 0, space + '%'); output = output.join(''); } else { output = output + space + '%'; } return output; }, unformat: function(string) { return numeral._.stringToNumber(string) * 0.01; }});// use your custom formatnumeral().format('0%');
8. # Acknowlegements |
9. |
10. |
11. |
作者:出处:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |