目录[-] (1)javascript 数组 (2)函数基础 (3)运算符 (4)流程语句 (5)正则表达式 (6)字符串函数 (7)数据类型…
November 16, 2018
javascript: 数字格式化, 数字处理, formatting numbers, manipulating ,Numeral.js
项目地址:https://github.com/adamwdraper/Numeral-js
Use it
In the Browser
<script src="numeral.min.js"></script>
或者使用CDN文件
<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/2.0.6/numeral.min.js"></script>
In Node.js
npm install numeral var numeral = require('numeral');
创建
创建数字的实例。数字采用它转换为数字的数字或字符串。
var myNumeral = numeral(1000); var value = myNumeral.value(); // 1000 var myNumeral2 = numeral('1,000'); var value2 = myNumeral2.value(); // 1000
Input | Value |
---|---|
numeral(974) | 974 |
numeral(0.12345) | 0.12345 |
numeral(‘10,000.12’) | 10000.12 |
numeral(’23.’) | 23 |
numeral(‘$10,000.00’) | 10000 |
numeral(‘100B’) | 100 |
numeral(‘3.467TB’) | 3467000000000 |
numeral(‘-76%’) | -0.76 |
numeral(‘2:23:57’) | NaN |
格式
数字可以格式化为货币,百分比,时间,甚至是带有小数位,数千和缩写的普通旧数字。您始终可以创建自定义格式。
var string = numeral(1000).format('0,0'); // '1,000'
数字
Number | Format | String |
---|---|---|
10000 | ‘0,0.0000’ | 10,000.0000 |
10000.23 | ‘0,0’ | 10,000 |
10000.23 | ‘+0,0’ | +10,000 |
-10000 | ‘0,0.0’ | -10,000.0 |
10000.1234 | ‘0.000’ | 10000.123 |
100.1234 | ‘00000’ | 00100 |
1000.1234 | ‘000000,0’ | 001,000 |
10 | ‘000.00’ | 010.00 |
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.2百万 |
1460 | ‘0 a’ | 1 千 |
-104000 | ‘0a’ | -104千 |
1 | ‘0o’ | 1. |
100 | ‘0o’ | 100. |
货币
Number | Format | String |
---|---|---|
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 百万 |
字节
Number | Format | String |
---|---|---|
100 | ‘0b’ | 100B |
1024 | ‘0b’ | 1KB |
2048 | ‘0 ib’ | 2 KiB |
3072 | ‘0.0 b’ | 3.1 KB |
7884486213 | ‘0.00b’ | 7.88GB |
3467479682787 | ‘0.000 ib’ | 3.154 TiB |
百分比
Number | Format | String |
---|---|---|
1 | ‘0%’ | 100% |
0.974878234 | ‘0.000%’ | 97.488% |
-0.43 | ‘0 %’ | -43 % |
0.43 | ‘(0.000 %)’ | 43.000 % |
时间
Number | Format | String |
---|---|---|
25 | ’00:00:00′ | 0:00:25 |
238 | ’00:00:00′ | 0:03:58 |
63846 | ’00:00:00′ | 17:44:06 |
指数
Number | Format | String |
---|---|---|
1123456789 | ‘0,0e+0’ | 1e+9 |
12398734.202 | ‘0.00e+0’ | 1.24e+7 |
0.000123987 | ‘0.000e+0’ | 1.240e-4 |
功能
值
该值始终可用。
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
Before | Function | After |
---|---|---|
1000 | .add(100) | 1100 |
1100 | .subtract(100) | 1000 |
1000 | .multiply(100) | 100000 |
100000 | .divide(100) | 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
设置
默认格式
设置默认格式,以便您可以使用不带字符串的.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的启发并大量借用。
本文:javascript: 数字格式化, 数字处理, formatting numbers, manipulating ,Numeral.js