egg-validate

安装

npm install --save egg-validate

规则

'int' => {type: 'int', required: true}
'int?' => {type: 'int', required: false }
'integer' => {type: 'integer', required: true}
'number' => {type: 'number', required: true}
'date' => {type: 'date', required: true}
'dateTime' => {type: 'dateTime', required: true}
'id' => {type: 'id', required: true}
'boolean' => {type: 'boolean', required: true}
'bool' => {type: 'bool', required: true}
'string' => {type: 'string', required: true, allowEmpty: false}
'string?' => {type: 'string', required: false, allowEmpty: true}
'email' => {type: 'email', required: true, allowEmpty: false, format: EMAIL_RE}
'password' => {type: 'password', required: true, allowEmpty: false, format: PASSWORD_RE, min: 6}
'object' => {type: 'object', required: true}
'array' => {type: 'array', required: true}
[1, 2] => {type: 'enum', values: [1, 2]}
/\d+/ => {type: 'string', required: true, allowEmpty: false, format: /\d+/}

自定义校验规则

app.validator.addRule('userName', (rule, value)=>{// value就是待检验的数据
  if (/^\d+$/.test(value)) {
    return "用户名应该是字符串";
  } else if (value.length < 3 || value.length > 10) {
    console.log("用户名的长度应该在3-10之间");
  }
});

示例

var rule = {
  name: 'string',
  age: {type: 'int', max: 200},
  gender: ['male', 'female'],
  working: 'boolean',
  salary: {type: 'number', min: 0},
  birthday: 'date',
  now: 'dateTime',
  id: 'id',
  childrens: {
    type: 'array',
    itemType: 'object',
    required: false,
    rule: {
      name: 'string',
      age: 'int',
      gender: ['male', 'female'],
      birthday: {type: 'date', required: false}
    }
  },
  mate: {
    type: 'object',
    required: false,
    rule: {
      name: 'string',
      age: 'int',
      gender: ['male', 'female'],
      birthday: {type: 'date', required: false}
    }
  }
};

var valid = {
  name: 'foo',
  gender: 'male',
  age: 30,
  working: true,
  salary: 10000.1,
  birthday: '1990-01-01',
  now: '2015-01-07 00:00:00',
  id: '052111',
  childrens: [{
    name: 'bar1',
    age: 1,
    gender: 'female',
    birthday: '2014-01-01'
  }, {
    name: 'bar2',
    age: 2,
    gender: 'male',
    birthday: '2013-01-01'
  }],
  mate: {
    name: 'hee',
    age: 29,
    gender: 'female'
  }
};



作者:Lujw
链接:https://www.jianshu.com/p/576fabc220f7
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值