开箱即用——格式化数字(常用于金额)正则/js

本文介绍如何使用正则表达式和JavaScript函数将数字转换为3个数字间用逗号分隔且保留两位小数的格式,如233333转为233,333.00。涉及的代码示例包括验证数字格式和处理整数与带小数的情况。

需求:
①最多有两位小数的数字
②转成3个数字一间隔的字符串的格式,用逗号隔开
例:12345 => 12,345.00

使用正则转换

输入 233333,输出 233,333.00
在这里插入图片描述

  • 代码
formatterAmount(value){
   if (value &&/^-?\d+\.?\d{0,2}$/.test(Number(value))){
      return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g,',')
   }else {
      return value
   }
}
使用js转换

32(万)=>320,000.00
在这里插入图片描述

  • 代码
function toThousands(e) {
   let num = (e || 0).toString()
   if ( num.indexOf('.') != -1){
      //带小数
      const arr = num.split(".");
      let integer = arr[0]
      let decimal = arr[1]
      if (decimal.length > 2){
         decimal = decimal.substr(0,2)
      }
      if (decimal.length == 1){ decimal = decimal + '000'}
      if (decimal.length == 2){decimal = decimal + '00'}
      if (integer) { num = integer + decimal }
      let result =''
      while (num.length > 3){
         result =','+ num.slice(-3) + result
         num = num.slice(0,num.length - 3)
      }
      if ( num) { result = num + result + '.00'}
      return result
   }else {
      //不带小数
      let result = ''
      num = num + '0000'
      while (num.length > 3) {
         result = ','+ num.slice(-3) + result
         num = num.slice(0,num.length - 3)
      }
      if (num) { result = num + result + '.00' }
      return result
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值