Numeral.js-没有英镑的支持吗

Numeral.js - is there no support of pound sterling?

本文关键字:支持 js- Numeral      更新时间:2023-09-26

我正试图用矩JS格式化货币值的输出,并在他们的网站'$ 0,0[.]00'上使用示例并为英镑编辑'£ 0,0[.]00',只输出值,而不是英镑符号。

数字不支持美元以外的货币吗?

我使用的代码是:

numeral(200).format('£ 0,0[.]00')

在未缩小代码的第67行和第68行有:

// figure out what kind of format we are dealing with
if (format.indexOf('$') > -1) { // currency!!!!!

是的,"美元"似乎是唯一被认可的货币符号。您可以单独添加货币符号,例如:

var amount = '£' + numeral(2456.01231).format('0,0[.]00');
console.log(amount); // £2,456.01

或者扩展库以处理其他货币符号。

最好使用ISO符号GBP,它不会含糊不清。有很多货币使用英镑符号,也有许多货币使用美元符号。

导入区域设置,然后手动设置。

import numeral from 'numeral';
import 'numeral/locales/en-gb';
numeral.locale('en-gb');
numeral('1234.56').format('$0,0.00'); // £1,234.56

考虑到这个问题最初是在两年多前得到的,我想提供一个替代答案。Numeral现在支持区域设置,这意味着您可以选择不同的货币格式。

我在代码库中所做的是:

  1. 导入数字并要求GB区域设置
  2. 使用GB区域设置定义默认格式
  3. 使用numeral(value).format()应用我刚刚定义的默认格式

这就是它的样子:

import * as numeral from 'numeral';
require('numeral/locales/en-gb');
numeral.locale('en-gb');
numeral.defaultFormat('$0,0.00');
numeral(200).format(); // £200.00
numeral(1234).format(); // £1,234.00
numeral(5431.31).format(); // £5,431.31

注意:在指定numeral.defaultFormat('$0,0.00')时,仍然需要使用美元符号。不过,由于GB区域设置的原因,数字实际上会呈现£。使用'£0,0.00'作为格式实际上不会呈现任何货币符号。