翻译自 Numeral.js
用它
在浏览器中
<script src="numeral.min.js"></script>
或者引用从cdnjs.com
<script src="http://cdnjs.cloudflare.com/ajax/libs/numeral.js/2.0.6/numeral.min.js"></script>
在Node.js中
npm install numeral
var numeral = require('numeral');
创建
创建数字的实例。数字采用它转换为数字的数字或字符串。
var myNumeral = numeral(1000);var value = myNumeral.value();
// 1000var myNumeral2 = numeral('1,000');var value2 = myNumeral2.value();
// 1000
格式
数字可以格式化为货币,百分比,时间,甚至是带有小数位,数千和缩写的普通旧数字。您始终可以 创建自定义格式。
var string = numeral(1000).format('0,0');
// '1,000'
Numbers
Currency
Bytes
Percentages
Time
Exponential
功能
值
该值始终可用。
var number = numeral(1000);var string = number.format('0,0');
// '1,000'var value = number.value();
// 1000
操作
并不是说你会经常使用它们,但是当你需要它们时它们就在那里。
var number = numeral(1000);var added = number.add(10);
// 1010
设置
设置数字对象的值。
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();
// 2000var bVal = b.value();
// 1000var cVal = c.add(10).value();
// 1010
设置
默认格式
设置默认格式,以便您可以使用不带字符串的.format()。默认格式为'0,0'
var number = numeral(1000);number.format();
// '1,000'numeral.defaultFormat('$0,0.00');number.format();
// '$1,000.00'
自定义零和空格式
格式化数字值为0或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'
本地化
让我们到处都可以使用它!
// load a locale
numeral.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 locales
numeral.locale('fr');
由于我不熟悉地球上的每个地区,请随意通过提交拉取请求来创建您自己的语言环境文件。不要忘记创建语言环境文件(例如:locales / fr.js)和语言环境测试(例如:tests / locales / fr.js)。谢谢你的帮助。
格式
添加自己的自定义格式就像添加区域设置一样简单。
// load a format
numeral.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 format
numeral().format('0%');
致谢
Numeral.js虽然不那么复杂,却受到Moment.js的启发并大量借用