【Javascript】数字转钱格式(千分位用逗号)

1、用正则实现
// 千分位
function toThousands(n) {
  const num = Number(n)
  const re = /\d{1,3}(?=(\d{3})+$)/g
  const n1 = num.toFixed(2).replace(/^(\d+)((\.\d+)?)$/, function(s, s1, s2) {
    return s1.replace(re, '$&,') + s2
  })
  return n1
}

console.log(toThousands(1000000)) // 1,000,000.00

正则含义
1)/\d{1,3}(?=(\d{3})+$)/g

用于在数字串中查找并匹配最多三个数字的片段,同时它预示着后续的数字将以每三个一组的形式出现直至字符串的结尾。

正则表达式逐个分析:

  • \d{1,3}:这部分匹配一到三个数字。\d 是一个字符类,代表任何一个数字(0-9),{1,3} 则指定这个字符类可以重复1到3次。
  • (?=(\d{3})+$):这是一个正向前瞻断言(positive lookahead assertion)。它检查当前位置之后的字符串是否符合括号内的模式,但自身并不消耗任何字符。括号内的模式 (\d{3})+ 匹配三个数字的组合,并且至少出现一次。$ 表示字符串的结尾,所以这个正向前瞻断言确保了从当前位置开始直到字符串的末尾,剩下的部分必须是三个数字的组合重复出现。
  • /g:全局匹配标志,表示在整个目标字符串中查找所有匹配项,而不仅仅停止在第一个匹配上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值