async-validator --- 中文文档

本文介绍了async-validator库,包括如何定义和使用验证规则,提供API详细说明,如验证对象、内置类型、异步校验函数以及自定义验证和错误提示。还涵盖了深度规则、默认字段和转换功能的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

async-validator

Install

Usage

API

Validate

Rules

Type 内置类型

Required

Pattern

Range

Length

Enumerable

Whitespace

Deep Rules 深层规则

defaultField 默认字段

Transform 变换

Messages 提示信息

asyncValidator 异步校验函数

validator 校验函数

FAQ


async-validator

一个用于表单异步校验的库,参考了 ​ ​https://github.com/freeformsystems/async-validate​​

API
下述内容来自于 ​ ​async-validate​​. 的早期版本

Usage 使用方法
基本的使用方法:定义一个 descriptor,将它传入 schema,得到一个 validator。将需要校验的对象和回调传入 validator.validate 方法中。

注:descriptor 是对校验规则的描述,validator 是根据校验规则得到的校验器

Install

npm i async-validator

Usage

基本的使用方法:定义一个 descriptor,将它传入 schema,得到一个 validator。将需要校验的对象和回调传入 validator.validate 方法中。

var schema = require('async-validator');
var descriptor = {
  name: {
    type: "string",
    required: true,
    validator: (rule, value) => value === 'muji',
  },
};
var validator = new schema(descriptor);
validator.validate({name: "muji"}, (errors, fields) => {
  if(errors) {
    // validation failed, errors is an array of all errors
    // fields is an object keyed by field name with an array of
    // errors per field

    // 校验未通过的情况,errors 是所有错误的数组
    // fields 是一个 object,以字段作为 key 值,该字段对应的错误数组作为 value
    // (其实 fields 就是把 errors 按照原对象的 key 值分组)

    return handleErrors(errors, fields);
  }

  // validation passed
  // 这里说明校验已通过
});

// PROMISE USAGE
// Promise 式用法

validator.validate({
  name: "muji",
  asyncValidator: (rule, value) => axios.post('/nameValidator', { name: value }),
}, (errors, fields) => {
  if(errors) {
    // validation failed, errors is an array of all errors
    // fields is an object keyed by field name with an array of
    // errors per field

    // 校验未通过的情况,errors 和 fields 同上
    return handleErrors(errors, fields);
  }
  // validation passed
  // 校验通过
})
  .then(() => {
    // validation passed
  // 校验通过
  })
  .catch(({ errors, fields }) => {
    return handleErrors(errors, fields);
  })

API

Validate

function(source, [options], callback): Promise
  • ​​source​​: 需要校验的对象(必填).
  • ​​options​​: 校验选项(可选).
  • ​​callback​​: 校验完成时的回调(必填).

方法返回一个 Promise 对象:

  • ​​then()​​,说明校验通过
  • ​​catch({ errors, fields })​​,校验未通过,errors, fields 含义见前面示例

Options 选项

suppressWarning: 布尔值,是否抑制有关无效值的内部警告。

first: 布尔值,当第一个验证规则生成错误时调用回调函数,不再处理更多的验证规则。如果您的验证涉及多个异步调用(例如数据库查询)并且只需要第一个错误,请使用此选项。

firstFields: 布尔值|字符串数组,当指定字段的第一个验证规则生成错误时调用回调函数,不再处理同一字段的更多验证规则。true 表示所有字段。

Rules


Rules 也可以是用于校验的函数

function(rule,
### 文件查找失败:'async-validator' 当遇到文件查找失败 `'async-validator'` 的情况时,可能的原因包括但不限于: - 安装过程中出现问题,导致 `async-validator` 并未成功安装到项目的依赖中。 - `.gitignore` 或其他配置文件错误地忽略了必要的模块目录。 #### 解决方案 确保 `async-validator` 正确安装并可用的方法有多种。以下是几种常见的解决方法: 1. **验证安装** 验证 `async-validator` 是否已正确安装于项目中的 `node_modules` 下。可以通过命令行工具进入项目根目录执行以下命令来重新安装该库: ```bash npm install async-validator --save ``` 如果使用的是 Yarn,则应执行: ```bash yarn add async-validator ``` 2. **检查 .gitignore 设置** 确认 `.gitignore` 文件没有误将 `node_modules` 或者特定版本的 `async-validator` 排除在外。通常情况下,`.gitignore` 应包含如下内容以忽略不必要的开发环境特异性文件[^4]。 3. **清理缓存重试** 清理 NPM 或 Yarn 缓存可以有效防止由于本地缓存损坏而导致的问题。对于 NPM 可以尝试: ```bash npm cache clean --force ``` 对于 Yarn 则可采用: ```bash yarn cache clean ``` 4. **确认路径引用无误** 在 JavaScript 中引入 `async-validator` 时,请确保使用的语句是正确的。例如,在 ES6 模块语法下应该这样写[^2]: ```javascript import { Schema } from 'async-validator'; ``` 通过上述措施应当能够解决大部分因缺少或无法识别 `async-validator` 所引发的问题。如果仍然存在困难,建议查看官方文档获取更多帮助和支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端 贾公子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值