- 第一种方式:我们可以使用正则来处理
function formatPrice(price) {
return String(price).replace(/\B(?=(\d{3})+(?!\d))/g, ',')
}
- 第二种方式:也可以不使用正则,进行优雅的处理
function formatPrice(price) {
return String(price).split('').reverse().reduce((prev, next, index) => {
return (index % 3 ? next : next + ',') + prev
})
}
- 第三种方式:直接使用JS内置 API (
toLocaleString),实现金额的格式化
(999999999).toLocaleString()
const options = {
style: 'currency',
currency: 'CNY',
}
(999999).toLocaleString('zh-CN', options)
toLocaleString可以接收两个可选参数:locales 和 options,而且这个 api在各大浏览器通用不存在兼容问题并且这个 api 不止存在 Number 的原型上,Array、Object、Date 原型上都有这个 api,并且格式化出来的值可以根据我们传入的参数出现各种结果,关于toLocaleString的参数及用法在MDN(Number.prototype.toLocaleString())中有详细的用法,感兴趣的小伙伴可以深入了解一下。