数据校验

数据校验是指对表单提交类的数据进行校验。如:用户注册、下订单等。 需要对这类提交的数据进行校验,如果不合法则不能通过。

数据校验和变量过滤器的区别为:变量过滤器一般给get请求使用的,数据校验一般给post请求使用的。

thinkjs里提供了数据校验的功能,在Action里通过this.valid方法使用。如:

  1. var email = this.post("email");
  2. //检测email是否合法
  3. //检测单个值时返回是否合法
  4. var isValid = this.valid(email, "email");

除了检测单个值,也可以同时检测多个值,返回所有的错误信息。如:

  1. //检测多个值,返回全部的错误信息
  2. var errMsg = this.valid([{
  3. name: "email",
  4. value: email,
  5. valid: "email",
  6. msg: {
  7. email: "email不合法"
  8. }
  9. }, {
  10. name: "pwd",
  11. value: password,
  12. valid: ["length"],
  13. length_args: [6, 20], //密码长度限制6-20位
  14. msg: {
  15. length: "密码长度不合法"
  16. }
  17. }])

返回的错误信息为:

  1. //检测的错误信息
  2. var errMsg = {
  3. email: "email不合法",
  4. pwd: "密码长度不合法"
  5. }

检测类型

支持的检测类型有:

  • length 限制长度,需要传入限制长度的数值。如:length_args: [6] 长度不能小于6, length_args: [6, 20] 长度为6-20。
  • required 长度必须大于0
  • regexp 自定义正则检测。如:regexp_args: [/\w+{5}/]
  • email 邮箱
  • time 时间戳
  • cnname 中文
  • idnumber 身份证号码
  • mobile 手机号
  • zipcode 邮编
  • confirm 2次值是否一致
  • url url
  • int 整数
  • float 浮点数
  • range 整数范围。如:range_args: [100, 200] 100-200之间
  • ip4 ip4
  • ip6 ip6
  • ip ip
  • date 日期