安装
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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。