数据校验
数据校验是指对表单提交类的数据进行校验。如:用户注册、下订单等。 需要对这类提交的数据进行校验,如果不合法则不能通过。
数据校验和变量过滤器的区别为:变量过滤器一般给get
请求使用的,数据校验一般给post
请求使用的。
thinkjs里提供了数据校验的功能,在Action里通过this.valid
方法使用。如:
var email = this.post("email");
//检测email是否合法
//检测单个值时返回是否合法
var isValid = this.valid(email, "email");
除了检测单个值,也可以同时检测多个值,返回所有的错误信息。如:
//检测多个值,返回全部的错误信息
var errMsg = this.valid([{
name: "email",
value: email,
valid: "email",
msg: {
email: "email不合法"
}
}, {
name: "pwd",
value: password,
valid: ["length"],
length_args: [6, 20], //密码长度限制6-20位
msg: {
length: "密码长度不合法"
}
}])
返回的错误信息为:
//检测的错误信息
var errMsg = {
email: "email不合法",
pwd: "密码长度不合法"
}
检测类型
支持的检测类型有:
length
限制长度,需要传入限制长度的数值。如:length_args: [6]
长度不能小于6,length_args: [6, 20]
长度为6-20。required
长度必须大于0regexp
自定义正则检测。如:regexp_args: [/\w+{5}/]email
邮箱time
时间戳cnname
中文idnumber
身份证号码mobile
手机号zipcode
邮编confirm
2次值是否一致url
urlint
整数float
浮点数range
整数范围。如:range_args: [100, 200]
100-200之间ip4
ip4ip6
ip6ip
ipdate
日期