美文网首页
格式化金额

格式化金额

作者: jluemmmm | 来源:发表于2020-10-28 00:26 被阅读0次

好用的正则可视化工具 链接

jsapi 实现

Number.prototype.toLocaleString() 只能精确到小数点后三位

正则

str.replace(/\d{1,3}(?=(\d{3})+(?:\.\d)?$)/g, '$&,')
有点问题,会对小数点后面的正则进行匹配
(?:exp) 匹配 exp,不捕获匹配的文本,不给此分组分配组号
(?=exp) 匹配 exp前面的位置

function trans(str){
  let partInt = str.match(/^\d+(?=\.)?/g)[0]
  return str.replace(partInt, partInt.replace(/(\d)(?=(\d{3})+$)/g, '$1,'))
}

匹配exp, 不捕获匹配的文本,也不给此分组分配组号

函数实现

function toTrans(num){
   debugger
  let res = ''
  let str = num.toString()
  let partInt = str.split('.')[0]
  let partFloat = str.split('.')[1]
  while(partInt.length > 3) {
    res = ',' + partInt.slice(-3) + res
    partInt = partInt.slice(0, partInt.length - 3)
  }
  if(partInt) res = partInt + res
  return partFloat ? res + '.' + partFloat : res
  
}

相关文章

网友评论

      本文标题:格式化金额

      本文链接:https://www.haomeiwen.com/subject/xjlwmktx.html