JS 为金额增加千分位逗号分割符(无正则匹配)

JS 为金额增加千分位逗号分割符(无正则匹配)

背景

	购物车项目中常见需求,总金额展示时为了方便需要增加千分位逗号符,方便查看。

思路

  首先金额是float/int类型,需要转成字符串,考虑用tostring() 或者toFixed()。
  其次判断总金额中是否有小数点,如果有则只需处理小数点索引之前的字符串。
  然后遍历字符串,如果其倒序序号能整除3则在前加逗号,将每一个字符存入数组中。
  最后用join方法将金额数组转成字符串。

详见代码

  注:以下代码含部分商品计算总价过程,如只需处理金额则直接从 let res = tp.toFixed(2)开始,传入参数总金额 tp 即可。
totalprice() {
                    var tp = 0; //定义总金额变量
                    this.clist.forEach((val) => {  //从商品列表中获取商品数量和价格计算总金额
                        tp += val.price * val.count; 
                    });
                    var res = tp.toFixed(2) //保留两位小数,并转字符串类型
                    var chararr = [] //用来存储金额字符串中的每一个字符
                    var rlength = res.indexOf('.')>0 ? res.indexOf('.') : res.length //如果有小数点,则只考虑小数点之前的数字进行处理
                    for (let i = 0; i < res.length; i++) {
                        if (rlength-i > 0 & (rlength - i) % 3 == 0 & (i != 0)){  //长度减索引表示实际要处理字符串倒序的序号,如果能整除3则在前加逗号
                            chararr.push(',')
                        };
                        chararr.push(res.charAt(i)); 
                    }
                    console.log(chararr.join(''))
                    return chararr.join('')  //join方法重新将字符串数组拼接成字符串
                }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值