@ntbl/validator
v0.0.1
Published
一个内置验证规则的数据验证库
Downloads
9
Readme
validator
validator 是一个内置验证规则的数据验证库。
Installation
npm i @ntbl/validator --save
Usage
import Validator from '@ntbl/validator'
// 表单数据
const formData = {
username: 'sunny',
password: '1234567',
mali: '[email protected]',
point: [4, 4, 5]
};
// 验证规则
const rules = {
username: [
// 使用内置的自定义规则
{rule: 'required', msg: '必须填写用户名'},
],
password: [
{rule: 'required', msg: '必须填写密码'},
// 使用数组的方式带参数
{rule: ['min', 6], msg: '不少于 6 个字符'},
{rule: ['max', 16], msg: '不超过 16 个字符'},
],
mali: [
{rule: 'required', msg: '必须填写邮箱'},
// 使用 validator.js 库支持的验证规则
{rule: 'isEmail', msg: '邮箱格式不正确'}
],
point: [
// 或者自定义函数
{rule: d => d.every(e => e > 3) , msg: '骰子的点数必须都大于 3 点'}
]
};
const validator = Validator(formData, rules);
// 验证所有的字段
// 返回 undefined,即无错误信息,表示验证通过
console.log(validator.validate()) // undefined
// 仅验证 emil 字段
console.log(validator.validateOf('emil')) // undefined
const formData1 = {
username: 'sunny',
password: '123',
mali: 'hsy.ntbl',
point: [4, 4, 5]
};
const validator2 = Validator(formData1, rules);
// 验证未通过时,将返回一个错误数组
console.log(validator2.validate())
/*
[
{ name: 'password', msg: '不少于 6 个字符' },
{ name: 'mali', msg: '邮箱格式不正确' }
]
*/
// 请注意 validateOf 返回的是一个错误对象
console.log(validator2.validateOf('mali'))
// { name: 'mali', msg: '邮箱格式不正确' }
验证规则
validator 内置了所有 validator.js 支持的验证规则。
除此之外,validator 还内置以下方便使用的自定义验证规则:
- required(): 不能为空
- min(n): 字符串/数值的长度或数值或不小于指定大小
- max(n): 字符串/数值的长度或数值或不小于指定大小
- is(pattern): 自定义验证规则