数据校验

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

数据校验和变量过滤器的区别为:变量过滤器一般给 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: {email: "email 不合法"}
  7. }, {
  8. name: "pwd",
  9. value: password,
  10. valid: ["length"],
  11. length_args: [6, 20], // 密码长度限制 6-20 位
  12. msg: {length: "密码长度不合法"}
  13. }])

返回的错误信息为:

  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 日期