0.0.9 • Published 6 months ago

@txjs/validator v0.0.9

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

@txjs/validator

安装方法默认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) => {…}
    }
  ]
}

校验字段配置 ValidatorRules\<Trigger>

/** 自定义方法配置规则 */
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
  • email
  • landline
  • url

add - 自定义验证方法

import { validator } from '@txjs/validator'

validator.add('custom-name', config: ValidatorConfig<Trigger>)
0.0.9

6 months ago

0.0.8

8 months ago

0.0.6

10 months ago

0.0.5

11 months ago

0.0.4

11 months ago

0.0.3

12 months ago

0.0.2

1 year ago

0.0.1

1 year ago