安装方法默认npm
npm i @txjs/validator
import { validator } from '@txjs/validator'
const rules = validator({
name: {
required: true,
minlength: 2,
maxlength: 8
}
})
// 规则内容
{
"name": [
{
"ruleName": "required",
"trigger": [
"change",
"blur"
],
"validator": (_, $$$value) => {…}
},
{
"ruleName": "minlength",
"trigger": "blur",
"validator": (_, $$$value) => {…}
},
{
"ruleName": "maxlength",
"trigger": "blur",
"validator": (_, $$$value) => {…}
}
]
}
/** 自定义方法配置规则 */
interface CustomValidatorRule<Trigger> {
trigger?: Trigger
validator: CustomValidatorFunction
}
/** 内置规则 */
export type DefaultsValidatorRules<Trigger> =
& Record<
| 'number'
| 'digits'
| 'telephone'
| 'email'
| 'landline'
| 'url'
| 'xss',
boolean | RuleType<boolean, 'default', Trigger>
>
& Record<
| 'minlength'
| 'maxlength'
| 'min'
| 'max',
number | RuleType<number, 'default', Trigger>
>
& Record<
| 'range'
| 'rangelength',
number[] | RuleType<number[], 'default', Trigger>
>
& {
required: boolean | RuleType<boolean, 'select' | 'array' | 'default', Trigger>
contains: any[] | RuleType<any[], 'default', Trigger>
}
/** 暴露自定义规则 */
export declare interface CustomValidatorRules {
[key: string]: any
}
type Rule<Trigger> =
& CustomValidatorRules
& Partial<DefaultsValidatorRules<Trigger>>
& {
/** 表单 label */
label?: string
/** 触发事件 */
trigger?: Trigger
/** 自定义规则 */
custom?: CustomValidatorRule<Trigger>[]
}
- required
- number
- digits
- contains
- minlength
- maxlength
- rangelength
- min
- max
- range
- xss
- telephone
- landline
- url
import { validator } from '@txjs/validator'
validator.add('custom-name', config: ValidatorConfig<Trigger>)