* 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;
},