Numeral.js数字格式化

Numeral.js 是一款轻量级的 JavaScript 库,用于格式化和操作数字。支持多种格式如货币、百分比等,并提供了丰富的功能如设置、操作、克隆等。还支持国际化,方便全球使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

翻译自 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();
// 1000

var 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();
// 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的启发并大量借用 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值