Vue过滤器使用

格式(一个过滤器):{{ 'msg' | filterA }}

(多个过滤器):{{ 'msg' | filterA | filterB }}

window.onload =function(){
/*在创建Vue实例之前就定义全局过滤器,直接使用过滤器是没有效果的*/

Vue.filter('capitalize', function (value) {
if (!value) return '';
value = value.toString();
return value.charAt(0).toUpperCase() + value.slice(1)
});

Vue.filter('upper', function (value) {
if (!value) return '';
value = value.toString();
return value.toUpperCase();
});

Vue.filter('lower', function (value) {
if (!value) return '';
value = value.toString();
return value.toLowerCase();
});

格式化金额,四舍五入保留两位小数

Vue.filter('currency',function (value) {
value = value.toString().replace(/$|\,/g,'');
if(isNaN(value)) {
value = "0";
}
let sign = (value == (value = Math.abs(value)));
value = Math.floor(value*100+0.50000000001);
let cents = value%100;
value = Math.floor(value/100).toString();
if(cents<10) {
cents = "0" + cents
}
for (var i = 0; i < Math.floor((value.length-(1+i))/3); i++) {
value = value.substring(0,value.length-(4*i+3))+',' +
value.substring(value.length-(4*i+3));
}

return ('¥'+((sign)?'':'-') + value + '.' + cents);
});


new Vue({
el: '#box',
data: {
msg:'WELCOME'
}
});
}

使用:{{'hello'| capitalize}}

<!--串联使用多个过滤器时注意意义:本身全是大写先转小写再转首字母大写-->

{{msg|lower|capitalize}}

{{ 12.154 | currency}} 格式化金额,四舍五入保留两位小数

没有人能一路单纯到底,但是要记住,别忘了最初的自己!
原文地址:https://www.cnblogs.com/LindaBlog/p/10653584.html