Module: Validate

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;