本案例使用范围没有负号,例如-52这样的数字,也不包含$等特殊符号的金额
let formatMount = function(money) {
let cents // 用来拼接小数位
if (money === null) {
money = '0'
}
if (money.indexOf('.') > 0) { // 处理小数位
cents = `.${Number(money).toFixed(2).split('.')[1]}` // 如果有小数位取出小数位 比如23.45 处理之后就是 .45
} else {
cents = '.00' // 没有小数位的直接加上 .00
}
money = Math.floor(money) // 取出整数位
money = ('' + money).replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g, '$1,')
return money + cents
}
// 数据一般从后台请求过来,大部分情况下,是以字符来表示的,所以你看到参数是字符串形式的
formatMount('256') // 256.00
formatMount('2564') // 2,564.00
formatMount('256.1') // 256.10
formatMount('256.178') // 256.18
formatMount('123456') // 123,456.00
formatMount('1234567') // 1,234,567.00
formatMount(null) // 0.00
因为是后台请求过来的数据可能会存在 null 的情况,如果不对这种情况做处理, 就直接报错了