js数字格式化(加千分位逗号)

需求:当金额大于10000时,在作展示的时候,需要加千分位逗号,就是每隔1000要用逗号分隔;

方法一:使用toLocaleString()方法

此方法和toString()方法的区别看这里

1 <script  type= "text/javascript">  
2      var   num = "12356.546";
3      console.log(parseFloat(num).toLocaleString());  // 12,356
4  </script>  

方法二

第二个方法性能更高,速度相对第一种方法快了将近9倍

 1 <script>
 2         'use strict'
 3         let format = n => {
 4             let num = n.toString()
 5             let decimals = ''
 6                 // 判断是否有小数
 7             num.indexOf('.') > -1 ? decimals = num.split('.')[1] : decimals
 8             let len = num.length
 9             if (len <= 3) {
10                 return num
11             } else {
12                 let temp = ''
13                 let remainder = len % 3
14                 decimals ? temp = '.' + decimals : temp
15                 if (remainder > 0) { // 不是3的整数倍
16                     return num.slice(0, remainder) + ',' + num.slice(remainder, len).match(/\d{3}/g).join(',') + temp
17                 } else { // 是3的整数倍
18                     return num.slice(0, len).match(/\d{3}/g).join(',') + temp
19                 }
20             }
21         }
22         format(12323.33)  // '12,323.33'
23     </script>

 如果大家还有什么更高的解决方案,也可以在下面添加评论告诉我哦

posted @ 2017-11-09 10:22  全堆栈溢出攻城狮  阅读(9081)  评论(1编辑  收藏  举报