014_Vue过滤器

1. 过滤器的作用是什么?

1.1. 格式化数据, 比如: 将字符串格式化为首字母大写、将日期格式化为指定的格式等等。

1.2. 自定义全局过滤器

Vue.filter("过滤器名称", function(val) {
	// 过滤器业务逻辑
});

1.3. 自定义局部过滤器

filters: {
	format: function(date, format){
		
	}
}

1.4. 过滤器的使用

<div>首字母大写: {{msg | upper}}</div>
<div>首字母小写: {{msg | lower}}</div><hr />

<div>{{date | format("yyyy-MM-dd hh:mm:ss")}}</div>

2. 过滤器例子

2.1. 代码 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>过滤器</title>
	</head>
	<body>
		<div id="app">
			<input type="text" v-model="msg" />
			<div>原值: {{msg}}</div>
			<div>首字母大写: {{msg | upper}}</div>
			<div>首字母小写: {{msg | lower}}</div><hr />

			<div>{{date | format("yyyy-MM-dd hh:mm:ss")}}</div>
		</div>
		
		<script type="text/javascript" src="vue.min.js"></script>
		<script type="text/javascript">
			// 自定义全局过滤器
			Vue.filter("upper", function(val) {
      			return val.charAt(0).toUpperCase() + val.slice(1);
		    });
		    Vue.filter("lower", function(val) {
		      	return val.charAt(0).toLowerCase() + val.slice(1);
		    });

			var vm = new Vue({
				el: "#app",
				data: {
					msg: "",
					date: new Date()
				},
				// 自定义局部过滤器
				filters: {
					format: function(date, format){
						date = new Date(date);
			          	if (!date || date.toUTCString() == "Invalid Date") {
			              	return "";
			          	}

			          	var map = {
			              	"M": date.getMonth() + 1, // 月份 
			              	"d": date.getDate(), // 日 
			              	"h": date.getHours(), // 小时 
			              	"m": date.getMinutes(), // 分 
			              	"s": date.getSeconds(), // 秒 
			              	"q": Math.floor((date.getMonth() + 3) / 3), // 季度 
			              	"S": date.getMilliseconds() // 毫秒 
			          	};

			          	format = format.replace(/([yMdhmsqS])+/g, function(all, t) {
			              	var v = map[t];
			              	if (v !== undefined) {
			                  	if (all.length > 1) {
			                      	v = "0" + v;
			                      	v = v.substr(v.length - 2);
			                  	}
			                  	return v;
			              	} else if (t === "y") {
			                  	return (date.getFullYear() + "").substr(4 - all.length);
			              	}
			              	return all;
			          	});

			          	return format;
					}
				}
			});
		</script>
	</body>
</html>

2.2. 效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值