【js】金钱格式化(每三位逗号分隔)的方法

JavaScript014

【js】金钱格式化(每三位逗号分隔)的方法,第1张

我们在日常开发中后台返回的金钱常常只是一个数字,比如12345.67,这时需要做一下转化,把它变成12,345.67这样的金钱格式,我想到的方法如下:

整体思路就是先拿到数据后,先把它当成字符串处理,通过小数点,分开整数和小数部分,然后处理整数部分,如果整数部分小于等于3位,直接用就可以啦,如果大于3位,那么就把这个整数最后3位先存起来且前面加上逗号,然后割掉这个整数的这3位,继续重复这个判断,每次截取的后三位都拼到上一次截取结果的前面,直到整数部分小于等于三位了,就可以和存储的结果拼在一起,再拼上小数部分就可以啦。

希望大家能有更好的方法~

数字格式化操作在前端领域是十分常见的需求。但是浏览器和原生JS并没有提供太多可用的API来让我们进行操作。

因此,我们大多数时候都诉诸于自己造轮子。

下面介绍在平常工作中,针对数字进行格式化的几个方法:

好在现在JS提供了一个更加可用和规范化的API——Intl.NumberFormat。对于常用的货币格式化都有良好的支持。

另外,也可以指定不同国家的货币单位:

而且该API现在的兼容性也十分良好:

基本上主流的浏览器现在都已经开始支持。

现在如果你的项目有需要用到数据格式化操作的地方,就不用手动去实现该功能了。尝试让浏览器帮你去实现。

具体API的细节,可以参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString