项目有需求,金额按千分位逗号隔开,如果小数点后面有多余的零要去除。
由于后台传的值是以“分”为单位的,所以先转换成“元”
// 去除小数点后面多余的零 - 金额按千位逗号分割
function formatMoney(num, type) {
num = num ? parseFloat((num / 100).toFixed(2)) : 0
if (/[^0-9\.]/.test(num)) {
return '0'
}
if (num === null || num === '') {
return '0'
}
num = num.toString().replace(/^(\d*)$/, '$1.')
num = (num + '00').replace(/(\d*\.\d\d)\d*/, '$1')
num = num.replace('.', ',')
var re = /(\d)(\d{3},)/
while (re.test(num)) {
num = num.replace(re, '$1,$2')
}
num = num.replace(/,(\d\d)$/, '.$1')
if (type === 0) { // 不带小数位(默认是有小数位)
var a = num.split('.')
if (a[1] === '00') {
num = a[0]
}
}
var regexp = /(?:\.0*|(\.\d+?)0+)$/
num = num.replace(regexp, '$1')
return num
}
// 金额按千位逗号分隔 - 去除小数点多余的0
console.log('金额按千位逗号分隔:', formatMoney('1234560022092'))
console.log('金额按千位逗号分隔:', formatMoney('123400000'))