数据校验是指对表单提交类的数据进行校验。如:用户注册、下订单等。 需要对这类提交的数据进行校验,如果不合法则不能通过。
数据校验和变量过滤器的区别为:变量过滤器一般给 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
日期