您的位置:首页 > Web前端 > JavaScript

javascript格式化数字问题(1234567890 --> 1,234,567,890)

2017-06-08 20:08 567 查看

javascript格式化数字问题(1234567890 –> 1,234,567,890)

window.onload = function() {
var test = '1234567890'
function formatCash(str) {
var arr = []
for(var i = 1; i < str.length; i++) {
if(str.length % 3 && i == 1) {
arr.push(str.substr(0, str.length % 3))
}
if(i % 3 === 0) {
arr.push(str.substr(i - 2, 3))
}
}
return arr.join(',')
}

console.log(formatCash(test)) // 1,234,567,890

//方法二:正则表达式
var test1 = '12345678905482454'
var format = test1.replace(/\B(?=(\d{3})+(?!\d))/g, ',')

console.log(format) // 1,234,567,890
//下面简单分析下正则/\B(?=(\d{3})+(?!\d))/g:
//1、/\B(?=(\d{3})+(?!\d))/g:正则匹配边界\B,边界后面必须跟着(\d{3})+(?!\d);
//2、(\d{3})+:必须是1个或多个的3个连续数字;
//3、(?!\d):第2步中的3个数字不允许后面跟着数字;
//4、(\d{3})+(?!\d):所以匹配的边界后面必须跟着3*n(n>=1)的数字。
//最终把匹配到的所有边界换成,即可达成目标。
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: