lg.validator
v0.0.5
Published
数据校验器,支持复杂嵌套校验,不限制嵌套层级,支持数组嵌套对象嵌套,内置丰富的校验规则,支持自定义全局规则,规则配置简单而不失扩展性
Downloads
88
Readme
数据校验器,支持复杂嵌套校验,不限制嵌套层级,支持数组嵌套对象嵌套,内置丰富的校验规则,支持自定义全局规则,规则配置简单而不失扩展性
六哥开源前后端脚手架
- https://gitee.com/lgx1992/lg-soar
六哥npm工具库
校验
import validator from 'lg.validator'
// 要校验的数据
const data = {
name: '六哥',
age: 61,
phone: '1507878797',
idcard: '110105202302190038',
list: [
{ kkk: 1, idcard: '11010520230219003x', map: { xxx: '1507878797' } },
{ kkk: 1, idcard: '110105202302190036', map: { xxx: '15078787979' } }
],
};
// 校验规则
const rule: { [k: string]: Rule } = {
name: '名称必填', // 使用字符串配置规则
age: (v: any) => v < 60 ? '' : '年龄必须小于60', // 使用校验函数配置规则
phone: { phone: true, msg: '请输入有效的手机号码' }, // 使用对象配置规则
idcard: [{ idcard: true, msg: '请输入有效的身份证号码' }], // 使用对象数组配置规则
list: {
// 数组嵌套校验
array: {
kkk: {
min: 2,
required: true,
msg: 'kkk不能小于2',
},
idcard: {
idcard: true,
msg: '请输入有效的身份证号码',
},
map: {
// 对象嵌套校验
object: {
xxx: { phone: true, msg: '请输入有效的手机号码' },
},
},
},
},
}
// 校验
validator(data, rule).then(() => {
console.log('校验成功', data);
}).catch((err) => {
console.error('校验失败', err);
document.querySelector<HTMLDivElement>('#app')!.innerHTML = JSON.stringify(err);
alert(err.errors.join(','))
});
添加自定义校验规则
import { addRule } from 'lg.validator'
// 添加全局校验规则
addRule('myv', (value: any, params: any, { data, rules, fieldRule }) => {
return value === 'lg-soar';
})
// 使用自定义校验规则
validator({ name: 'lg-soar1' }, { name: { myv: true, msg: '必须输入lg-soar', } });
使用内置规则校验
import { getRules } from 'lg.validator'
const rules = getRules();
console.log('idcard', rules.idcard('11010520230219003x'))
console.log('phone', rules.phone('15078787979'))
console.log('maxLength', rules.maxLength('15078787979', 10))