如何巧妙地实现js中每隔3个数字添加一个逗号

如 123456 => 123,456 12345 => 12,345

现在楼下有了正则,es6中的新特性方法呢

阅读 12.8k
3 个回答

Number(123456).toLocaleString()

var str = num.replace(/\d(?=(?:\d{3})+\b)/g,'$&,');

// 或者直接拓展Number
Number.prototype.toCurrencyString=function(){
  return this.toFixed(2).replace(/\d(?=(?:\d{3})+\b)/g,'$&,'); // 这里看你是不是要小数
}

// 另外楼下说的toLocalString也可以这么用,但是兼容性并不好, https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString 查看兼容性
console.log(num.toLocaleString("en-US", { style: "currency", currency: "USD" }));
console.log(num.toLocaleString("zh-CN", { style: "currency", currency: "CNY", maximumFractionDigits: 2}));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏