【javascript】数字格式化--金钱

在js中有许多种方式能够将逗号作为千位分隔符把整数进行格式化。

最简单的方式就是利用String.prototype.replace()方法,只需使用以下两个参数即可。

regular expression: (?=(\d{3})+(?!\d))
replacement value: $1,

使用正则表达式去做,然后将要匹配的数字使用$1,进行替换了。这个$1是一个特殊的替换字符,它保存第一个带圆括号的子串(在我们的例子里,它是匹配的数字)。逗号字符是我们的分隔符。

例子:

function formatNumber(num) {
  return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
}

console.info(formatNumber(2665)) // 2,665
console.info(formatNumber(102665)) // 102,665
console.info(formatNumber(111102665)) // 111,102,665

当然此方法也适用于双精度数字。

console.info(formatNumber(1240.5)) // 1,240.5
console.info(formatNumber(1000240.5)) // 1,000,240.5

currency formatting --做了一点小改动

function currencyFormat(num) {
  return '$' + num.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
}

console.info(currencyFormat(2665)) // $2,665.00
console.info(currencyFormat(102665)) // $102,665.00

对于currency formatting 来说,利用了Number.prototype.toFixed()将数字转换为保留两位的。

如果货币格式需要区域性,也可以再做点小改动。

function currencyFormatDE(num) {
  return (
    num
      .toFixed(2) // always two decimal digits
      .replace('.', ',') // replace decimal point character with ,
      .replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.') + ' €'
  ) // use . as a separator
}

console.info(currencyFormatDE(1234567.89)) // output 1.234.567,89 €

 

原文: https://blog.abelotech.com/posts/number-currency-formatting-javascript/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值