Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/yangtianxia/validator

A library for generating form data validation methods
https://github.com/yangtianxia/validator

Last synced: 3 months ago
JSON representation

A library for generating form data validation methods

Awesome Lists containing this project

README

        

# @txjs/validator

> 安装方法默认npm

## 安装

```ts
npm i @txjs/validator
```

## 基础示例

```ts
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\

```ts
/** 自定义方法配置规则 */
interface CustomValidatorRule {
trigger?: Trigger
validator: CustomValidatorFunction
}

/** 内置规则 */
export type DefaultsValidatorRules =
& Record<
| 'number'
| 'digits'
| 'telephone'
| 'email'
| 'landline'
| 'url'
| 'xss',
boolean | RuleType
>
& Record<
| 'minlength'
| 'maxlength'
| 'min'
| 'max',
number | RuleType
>
& Record<
| 'range'
| 'rangelength',
number[] | RuleType
>
& {
required: boolean | RuleType
contains: any[] | RuleType
}

/** 暴露自定义规则 */
export declare interface CustomValidatorRules {
[key: string]: any
}

type Rule =
& CustomValidatorRules
& Partial>
& {
/** 表单 label */
label?: string
/** 触发事件 */
trigger?: Trigger
/** 自定义规则 */
custom?: CustomValidatorRule[]
}
```

## 支持方法

#### 内置验证方法
- required
- number
- digits
- contains
- minlength
- maxlength
- rangelength
- min
- max
- range
- xss
- telephone
- email
- landline
- url

#### add - 自定义验证方法

```ts
import { validator } from '@txjs/validator'

validator.add('custom-name', config: ValidatorConfig)
```