Example
// 添加自定义验证类型:IP地址类型验证
Validate.string.prototype.ip = (label) => {
const callback = (value) => (value ? isIP(value) : true);
return Validate.string().label(label).test('ip', 'IP地址格式错误', callback);
};
// 验证规则使用
Validate.string().ip()
Methods
(static) array()
数组规则校验
Returns:
数组验证规则
Example
// 数组长度最小为1。
const rule = Validate.array().min(1);
(static) boolean()
Boolean规则校验
const rule = Validate.boolean();
Returns:
Boolean验证规则
(static) number()
数字规则校验
Returns:
数字验证规则
Example
// 大于等于10,小于等于100
const rule = Validate.number().min(10).max(100);
// 大于10,小于100
const rule = Validate.number().moreThan(10).lessThan(100);
// 整数类型数据
const rule = Validate.number().integer();
(static) string()
字符串规则校验
Returns:
字符串验证规则
Example
// 必填且长度必须大于2个字符、小于200个字符
const rule = Validate.string().required().min(2).max(200);
// 邮箱且长度小于100个字符
const rule = Validate.string().email().max(100);
// 手机号
const rule = Validate.string().mobile();
// 正则表达式
const rule = Validate.string().matches(/reg/g);
(async, inner) validate(fields, data)
校验字段
Parameters:
Name | Type | Description |
---|---|---|
fields |
Array | 字段集合 |
data |
Object | 被验证的对象 |
Returns:
Object
Example
const fields = [
{
name: 'name',
label: '用户姓名',
required: true,
validate: Validate.string().min(2).max(20),
},
{
name: 'age',
label: '年龄',
required: true,
validate: Validate.number().min(20).max(200),
},
{
name: 'company.name',
label: '公司名称',
required: true,
validate: Validate.string().max(200),
},
{
name: 'company.address',
label: '公司地址',
validate: Validate.number().min(20).max(200),
},
];
const { success, errs } = await Validate.validate(fields, {
name: '张三',
age: '10',
company: { name: 'XX公司', address: 'XX路' }
});
if (!success) return;