1.1.91 • Published 3 years ago
@ignorance/validator v1.1.91
@ignorange/validator
一个 js 通用校验库
特色
- 支持校验单个字段
- 支持校验多个字段(遇到第一个错误提前退出)
- 支持校验多个字段(坚持校验完所有字段,输出汇总的校验信息)
- 以上三种校验方式都有对应的异步校验方式(异步校验有两种判定校验不通过的方式:一种是
reject
,一种是resolve(false)
) - 支持异步和同步两种方式混合校验
- 支持扩展校验正则规则
- 支持扩展自定义校验方法
- 支持动态校验
安装
npm i @ignorance/validator
基础用法
import { createValidator } from '@ignorance/validator'
const ruleConfig = {
name: [
{
validator: 'required',
msg: '必填',
},
{
validator: 'min:2 max:6',
msg: '长度在 2 ~ 6 之间',
},
],
}
const { verify } = createValidator(ruleConfig)
verify({ name: 'lasa' })
// output { name: 'name', valid: false, msg: '长度在 2 ~ 6 之间' }
API
单个字段的同步(verifySingle)
const ruleConfig = {
name: [
{
validator: 'required',
msg: '必填',
},
{
validator: 'min:2 max:6',
msg: '长度在 2 ~ 6 之间',
},
],
}
const { verifySingle, verifySingleAsync } = createValidator(ruleConfig)
verifySingle('hehe', 'min:2 max:6')
// output { valid: false, msg: '长度在 2 ~ 6 之间' }
单个字段异步校验(verifySingleAsync)
const ruleConfig = {
name: [
{
validator: (val) => Promise.resolve(false), // 异步校验函数
msg: '异步校验不通过',
},
],
}
const { verifySingleAsync } = createValidator(ruleConfig)
;async () => {
const res = await verifySingleAsync('name', '')
// output { valid: false, msg: '异步校验不通过' }
}
校验多个字段,遇到第一个错误提前退出(verify)
name
与 addr
两个字段都不符合规则,但是当它校验到第一个错误时就会跳出,不再继续校验 addr
字段。
const ruleConfig = {
name: [
{ validator: 'required', msg: '必填' },
{
validator: (val) => val.length >= 2 && val.length <= 6,
msg: '长度在 2 ~ 6 之间',
},
],
addr: [{ validator: 'required', msg: '必填' }],
}
const { verify } = createValidator(ruleConfig)
verify({
name: 'v',
addr: '',
})
// output { name: 'name', valid: false, msg: '长度在 2 ~ 6 之间' }
异步校验多个字段,遇到第一个错误提前退出(verifyAsync)
用法与 verify
类似,同时支持同步与异步校验规则,返回结果通过 Promise
包装。
校验所有字段,返回所有结果(verifyAll)
用法与 verify
一致,区别在于 verifyAll
会返回所有校验结果。
verify({
name: 'v',
addr: '',
})
/*
{
name: { name: 'name', valid: false, msg: '长度在 2 ~ 6 之间' },
addr: { name: 'addr', valid: false, msg: '必填' }
}
*/
异步校验所有字段,返回所有结果(verifyAllAsync)
用法与 verifyAll
类似,同时支持同步与异步校验规则,返回结果通过 Promise
包装。
动态校验
verify
支持传入第二个参数,表示指定需要校验的字段。
verify(
{
name: 'v',
addr: '',
},
['addr']
)
// { name: 'addr', valid: false, msg: '必填' }
扩展规则
扩展正则规则
import { extendRegexpRule } from '@ignorance/validator'
extendRegexpRule({
ownReg: /[0-9a-z]/,
})
// 扩展规则之后,在定义规则配置的时候,可以用这种写法
const ruleConfig = {
name: [{ validator: 'ownReg', msg: '自己扩展的正则校验规则' }],
}
扩展自定义规则
import { extendRegexpRule } from '@ignorance/validator'
extendValidator({
ownRule: (val) => val > 999,
})
// 扩展规则之后,在定义规则配置的时候,可以用这种写法
const ruleConfig = {
name: [{ validator: 'ownRule', msg: '自己扩展的校验规则' }],
}
1.1.91
3 years ago
1.1.9
3 years ago
1.1.8
3 years ago
1.1.7
3 years ago
1.1.6
3 years ago
1.1.1
3 years ago
1.1.0
3 years ago
1.1.5
3 years ago
1.1.4
3 years ago
1.1.2
3 years ago
1.0.11
4 years ago
1.0.14
4 years ago
1.0.13
4 years ago
1.0.12
4 years ago
1.0.10
4 years ago
1.0.9
4 years ago
1.0.8
4 years ago
1.0.7
4 years ago
1.0.6
4 years ago
1.0.5
4 years ago
1.0.4
4 years ago
1.0.3
4 years ago
1.0.2
4 years ago
1.0.1
4 years ago
1.0.0-beta
5 years ago
0.0.21
6 years ago
0.0.20
6 years ago
0.0.19
6 years ago
0.0.18
6 years ago
0.0.17
6 years ago
0.0.16
6 years ago
0.0.15
6 years ago
0.0.14
6 years ago
0.0.13
6 years ago
0.0.12
6 years ago
0.0.11
6 years ago
0.0.10
6 years ago
0.0.0
6 years ago