js 金钱格式化(money)

13 篇文章 0 订阅
* value,金额
* thou,是否加分号
*len 小数数位
    Vue.filter('money', function (value, thou, len) {
        if (value === 'undefined' || value === '' || value == null) {
            return '';
        }
        if (value < 0) {
            return '-' + (Vue.tpUtil.showNumber(thou, len, -value))
        }
        return Vue.tpUtil.showNumber(thou, len, value);
    })

showNumber方法

showNumber: function (thou, len, value) {
            var code = '';
            if (!len) {
                len = 2
            } else {
                len = parseInt(len) || 2;
            }
            if (!value || parseFloat(value) === '0') {
                code = Number('0').toFixed(len);
                return code;
            }
            if (value && parseFloat(value) !== '0') {
                if (!isNaN(parseFloat(Vue.tpUtil.delcommafy(value)))) {
                    var itemValue = parseFloat(Vue.tpUtil.delcommafy(value));
                    // if (itemValue >= minValue && itemValue <= maxValue) {
                    if (thou) {
                        code = Vue.tpUtil.comdify(Number(itemValue).toFixed(len));
                    } else {
                        code = Number(value).toFixed(len);
                    }
                } else {
                    code = '';
                }
            }
            return code;
        },

去除千分位中的‘,’

delcommafy: function (num) { // 去除千分位中的‘,’
            num = num.toString();
            num = num.replace(/,/gi, '');
            return +num;
        },

comdify方法

comdify: function (n) {
            var re = /\d{1,3}(?=(\d{3})+$)/g,
                n1 = n.replace(/^(-?\d+)((\.\d+)?)$/, function (s, s1, s2) {
                    return s1.replace(re, '$&,') + s2;
                });
            return n1;
        },

代码示例

//js写法
var y =  '21356.986';
var t = Vue.filter('money')(y, true, 2);console.log(t)//21,356.99
var t = Vue.filter('money')(y, false, 2);console.log(t)// 21356.99
//模板写法
<div>{{y | money(true, 2)}}<div>   21,356.99
<div>{{y | money(false, 2)}}<div>   21357.99
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值