# @crystaldelta/simple-react-validator 中文文档

规范地址：https://npmcn.com/package/%40crystaldelta/simple-react-validator/

版本：1\.6\.0
npm 元数据更新时间：2022-04-05T02:00:05.754Z
中文译文更新时间：2026-11-11T02:52:54.230Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40crystaldelta/simple-react-validator
原文对照：https://npmcn.com/package/%40crystaldelta/simple-react-validator/?lang=original
项目主页：https://github.com/dockwa/simple-react-validator#readme
源码仓库：https://github.com/dockwa/simple-react-validator

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：181 kB，47 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2021-03-19T06:04:24.639Z
- 最新版本发布：2021-03-19T06:04:25.049Z
- 近 30 天下载量：9601（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 0 个）

## 中文简介

由Laravel验证所启发的简单反应形式验证器.

## 安装

```sh
npm install @crystaldelta/simple-react-validator
```

也可以使用：`pnpm add @crystaldelta/simple-react-validator`、`yarn add @crystaldelta/simple-react-validator`、`bun add @crystaldelta/simple-react-validator`

## README

### 简单反应验证器

由Laravel验证所激发的简单反应和反应本土形式验证器.  
[![](https://img.shields.io/npm/v/simple-react-validator.svg)](https://www.npmjs.com/package/simple-react-validator) [![](https://img.shields.io/npm/dt/simple-react-validator.svg)](https://www.npmjs.com/package/simple-react-validator) [![](https://data.jsdelivr.com/v1/package/npm/simple-react-validator/badge?style=rounded)](https://www.jsdelivr.com/package/npm/simple-react-validator)  
[**对国家预防机制的看法**](https://www.npmjs.com/package/simple-react-validator)

[![Powered by Dockwa](https://raw.githubusercontent.com/dockwa/openpixel/dockwa/by-dockwa.png)](https://engineering.dockwa.com/)

# 关于

简单的反作用验证器就是它的声音。 我们想建立一个验证器 来进行配置最小并且自然使用的反应。 它的配置和用法类似于Laravel PHP框架,使验证像一行一样容易.

[工作示例](https://dockwa.github.io/simple-react-validator/index.html)

# 文档

1.  [使用量](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-usage)
2.  [设置](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-3-easy-steps)
    1.  [公共方法](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-1-available-public-methods)
    2.  [布莱尔](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-2-onBlur)
    3.  [有条件的字段](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-4-Conditional-Fields)
    4.  [反应 SFC 和 Hooks](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-4-React-Hooks)
    5.  [原生反应](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-5-React-Native)
3.  [规则](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-rules)
4.  [选项](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-options)
    1.  [元素](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-1-element)
    2.  [类名](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-2-classname)
    3.  [信件](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-3-messages)
    4.  [验证器](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-4-validators)
    5.  [自动强制更新](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-5-autoforceupdate)
    6.  [本地化](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-6-locale)
5.  [自定义验证器](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-custom-validators)

# 使用量

打开 `example/index.html` 文件用于更多使用库实例或检查 [示例](https://dockwa.github.io/simple-react-validator)

**无**

```
npm install simple-react-validator --save
```

**箭头**

```
bower install simple-react-validator --save
```

# 3 简单步骤

1.  导入并初始化验证符 .

```javascript
import SimpleReactValidator from 'simple-react-validator';
```

编号5

```javascript
componentWillMount: function() {
  this.validator = new SimpleReactValidator();
},
```

代码6

```javascript
constructor() {
  this.validator = new SimpleReactValidator();
}
```

2.  在输入下添加验证规则 。 这个 `message` 方法接受5个参数:

-   **字段名称**:一个独特的下划线字符串,在消息中被替换为字段的名称.
-   **数值**:通常为当前字段的状态.
-   **规则字符串**: 用于字符串的管道分隔规则列表.
-   **选项( 可选)**: 选项对象与 [默认选项](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#)。 。 。 .

```javascript
this.validator.message('title', this.state.title, 'required|email')
```

**示例**

```jsx
render() {
  return (
    <div className="container">
      <h1>Write a Review</h1>
      <div className="form-group">
        <label>Title</label>
        <input className="form-control" value={this.state.title} onChange={this.setTitle} />

        {/**********   This is where the magic happens     ***********/}
        {this.validator.message('title', this.state.title, 'required|alpha')}

      </div>
      <div className="form-group">
        <label>Email</label>
        <input className="form-control" value={this.state.email} onChange={this.setEmail} />

        {/**********   This is where the magic happens     ***********/}
        {this.validator.message('email', this.state.email, 'required|email', { className: 'text-danger' })}

      </div>
      <div className="form-group">
        <label>Review</label>
        <textarea className="form-control" value={this.state.review} onChange={this.setReview} />

        {/**********   This is where the magic happens     ***********/}
        {this.validator.message('review', this.state.review, 'required|min:20|max:120')}

      </div>
      <button className="btn btn-primary" onClick={this.submitForm}>Save Review</button>
    </div>
  );
}
```

3.  检查提交时验证是否通过, 如果失败则打开信件 。 一旦消息被打开,验证消息会随着用户类型而改变并更新.

```javascript
submitForm() {
  if (this.validator.allValid()) {
    alert('You submitted the form and stuff!');
  } else {
    this.validator.showMessages();
    // rerender to show messages for the first time
    // you can use the autoForceUpdate option to do this automatically`
    this.forceUpdate();
  }
}
```

有另一种方法可以用来检查单个字段是否有效.

```javascript
if (this.validator.fieldValid('email')) {
  // booya this field is valid!
}
```

#### 注:自动更新日期

从v1.1.0起,您可以用 `autoForceUpdate` 选项,然后通过它的反应实例 对国家负责。 这将自动调用 `this.forceUpdate()` 当你 `showMessages`, (中文(简体) ), `hideMessages`, (中文(简体) ), `showMessageFor`,以及 `hideMessageFor` 被调用.

```javascript
constructor() {
  this.validator = new SimpleReactValidator({autoForceUpdate: this});
}


```

#### 1\. 可用的公共方法

`getErrorMessages()` 返回 JS 对象, 键为字段名, 值为错误消息 .

`showMessages()` 打开显示所有信件的信件 .

`hideMessages()` 关闭显示所有信件的信件 .

`showMessageFor(field)` 打开显示特定字段的信息。 用于 [布莱尔](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-onblur)。 。 。 .

`hideMessageFor(field)` 关闭显示特定字段的信息。 用于 [布莱尔](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-onblur)。 。 。 .

`allValid()` 如果所有字段都通过验证或不通过, 返回布尔值 .

`fieldValid(field)` 检查单个字段是否有效 .

`purgeFields()` 启用验证对象 [条件字段.](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-conditional-fields)

`messageWhenPresent(message, options = {})` 设置信件时显示信件, 有利于 ajax 验证错误 .

`check(value, validations)` 一种简单的方式来对照验证规则中构建的值来检查值. 不添加验证符, 只是给出一个真实/ 假返回值 .

`message(field, value, validations, options = {})` 如何定义验证规则,并在表格中添加消息.

#### 2\. 关于Blur

您可以在输入模糊后使用Blur动作上的反应来显示单个字段. 使用 `showMesssageFor` 或者说 `hideMessageFor` 方法。 。 .

```jsx
<div>
  <label>Email</label>
  <input value={this.state.email} onChange={/* update email */} onBlur={() => this.validator.showMessageFor('email')} />
  {this.validator.message('email', this.state.email, 'required|email')}
</div>

```

#### 3\. 有条件的领域

通过上面添加一个字段到验证符中 `message` 方法。 但有时要随着表单的完成有条件地添加并去除验证. 这个你可以用 `purgeFields` 在每次渲染之前清除所有验证符的方法,因此只有在该渲染过程中添加的字段才被验证.

```jsx
render() {
  this.validator.purgeFields();
  return (
    <div>
      <div className="form-group">
        <label>Address Line 1</label>
        <input className="form-control" value={this.state.title} onChange={this.setTitle} />
        {this.validator.message('title', this.state.title, 'required|alpha')}
      </div>
      {this.optinallyAddAnotherAddressLine()}
      <button className="btn btn-primary" onClick={this.submitForm}>Save Review</button>
    </div>
  );
}
```

#### 4\. 反应钩

SimpleReactValidator是一个类,但如果在无国籍的React组件中即时切入一个类,它将在每次渲染时都这样做(关闭可能添加的任何消息信息).

使用参考文献: 指示反应将简单反应变异器作为单通处理 :

```jsx
const simpleValidator = useRef(new SimpleReactValidator())

<Input
  name="name"
  value={companyInformation.name}
  onChange={handleInputChange}
  onBlur={()=>simpleValidator.current.showMessageFor('name')} />
{simpleValidator.current.message('name', companyInformation.name, 'required')}
```

详情见 [问题:97](https://github.com/dockwa/simple-react-validator/issues/97)

#### 5\. 土著反应

您需要用 `<Text>` 元素.

```jsx
<Text>
  {this.validator.message('title', this.state.title, 'required|alpha')}
</Text>
```

# 规则

这是您可以校验格式输入的所有规则列表 。 当使用多个规则时,用管子将它们分开 `|`。在添加选项时,在规则中附加一个冒号,并用逗号分隔选项。 实例: `'required|min:20|max:120'` 财务报告和审定财务报表 `'required|in:stu,stuart,stuyam'`您可以通过一个阵列来应用规则 `['required', {max: 20}, {min: 120}]` 或者说 `['required', {in: ['stu', 'stuyam']}]`。这对于像正则验证器这样的东西是必需的,在正则中您可能使用管道或逗号,并且会与规则字符串相冲突.

-   [获得接受](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-accepted)
-   [之后](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-afterdate)
-   [之后或相等](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-after_or_equaldate)
-   [阿尔法](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-alpha)
-   [阿尔法空格](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-alpha_space)
-   [阿尔法数字](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-alpha_num)
-   [阿尔法空格](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-alpha_num_space)
-   [阿尔法数](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-alpha_num_dash)
-   [阿尔法 Num Dash 空格](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-alpha_num_dash_space)
-   [阵列](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-array)
-   [在此之前](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-beforedate)
-   [之前或相等](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-before_or_equaldate)
-   [之间](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-betweenminmaxtypeoptional)
-   [布尔](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-boolean)
-   [卡片过期](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-card_exp)
-   [卡片号码](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-card_num)
-   [货币](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-currency)
-   [日期](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-date)
-   [日期相等](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-date_equalsdate)
-   [电子邮件](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-email)
-   [单位](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-infoobar)
-   [整数](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-integer)
-   [马克斯](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-maxsizetypeoptional)
-   [分钟](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-minsizetypeoptional)
-   [不进](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-not_infoobar)
-   [不是雷格克斯语](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-not_regexpattern)
-   [数字](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-numeric)
-   [电话](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-phone)
-   [缩写](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-regexpattern)
-   [需求](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-required)
-   [大小](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-sizesizetypeoptional)
-   [字符串](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-string)
-   [类型](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-typeoftype)
-   [乌尔尔](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-url)

#### 已接受

必须是 Java 脚本 _真实_,适合所需的复选框.

#### 日期之后

一定是约会过后 见 [日期](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-date) 用于提供已接受日期值的信息.

#### 等:日期之后

必须是在之后或日期。 见 [日期](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-date) 用于提供已接受日期值的信息.

#### 阿尔法

只能用集装箱字母.

#### α- 空间

只能使用容器的字母和空格 .

#### α num

只能是容器的字母和号码.

#### α num 空间

只能使用容器的字母、数字和空格.

#### α num dash

只能是容器的字母、数字、破折号和下划线.

#### α num dash 空间

只能是容器的字母、数字、破折号、下划线和空格.

#### 数组

必须是 JavaScript 矩阵 .

#### 日期:

一定在约会之前 见 [日期](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-date) 用于提供已接受日期值的信息.

#### 前为平:日期

必须是在日期之前或日期。 见 [日期](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-date) 用于提供已接受日期值的信息.

#### 介于: min, max, 类型( 可选)

必须在两个值之间。 见 [大小](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-sizesizetypeoptional) 用于提供如何计算大小和如何使用选项的信息.

#### 布尔

必须是 JavaScript Boolean .

#### 纸牌表达式

必须是有效的信用卡到期日。 例10/18或10/2018 (韩语)

#### 纸牌( num)

一定是有效的信用卡号码 Ex. 4242424242或4242 4242 4242 4242

#### 货币

一定是有效货币 美元符号和逗号是可选的 。 前4.25、3 000或3 245 525.12美元

#### 日期

必须是日期类型 [时间](https://momentjs.com/) 约会. **需要时间**

#### 日期( e): 日期

一定是特定日期的约会.  
_选项 :_ 日期必须是时间对象.

#### 电子邮件

必须是有效的电子邮件格式 .

#### 在: foo, bar, 中, 中, 中.

必须匹配选项中的字符串 .  
_选项 :_ 它必须匹配的数值列表.

#### 整数

必须是整数 .

#### 最大:大小,类型(可选)

一定不会超过最大。 见 [大小](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-sizesizetypeoptional) 用于提供如何计算大小和如何使用选项的信息.

#### 分:大小,类型(可选)

一定不会小于分钟。 见 [大小](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-sizesizetypeoptional) 用于提供如何计算大小和如何使用选项的信息.

#### 不是在: foo, bar, , , , ,...

在选项中不能匹配字符串 .  
_选项 :_ 列出它不能匹配的值.

#### 非正则: pattern

一定不匹配正则名词 .  
_选项 :_ 瑞克丝一定不匹配.  
_说明:_ 如果您的 regex 使用 qq 或 , 或其他特殊字符使用数组语法定义规则 .

#### 数字

一定是任意类型的数字.  
正数 : “ 数值 : 0. 0 ”  
负数“ 数值 : 0. 0 ”

#### 电话

必须是有效的电话号码格式 。 前(508年) 555-1234或5085551234

#### regex: 扩展

一定跟Regex一样.  
_选项 :_ 雷克克斯必须匹配.  
_说明:_ 如果您的 regex 使用 qq 或 , 或其他特殊字符使用数组语法定义规则 .

#### 所需经费

必须在场,与其他验证人一起使用才能要求它们.

#### 大小:大小,类型(可选)

一定有特别的尺寸 可以是字符串长度,数组长度,也可以是数字.  
_选项 :_ 类型是可选的,默认为 `string`。有3个“字符串”、“数字”和“阵列”。 字符串为字符串长度,num为数字大小,数组为数组长度.

#### 字符串

必须是类型字符串.

#### 类型: 类型

必须是选项中指定的 JavaScript 类型 .  
_选项 :_ 比较给出的数值类型与所提供的类型。 使用数组语法来定义其它类型,它永远是类型字符串.

#### url 密码

必须是有效的url。 ex. (英语). [https://dockwa.com (中文(简体) )](https://dockwa.com/) 或 ditchwa.com (中文(简体) )

# 选项

简单反应验证器在初始化时可以接收选项对象,或者在定义验证器时作为第四个参数. 你可以提供四个选项.

#### 1\. 要件:

接受一个块,您可以返回要从验证器信件中将信件包裹的默认元素。 默认元素是 `<div className="srv-validation-message">{message}</div>`。如果您正在使用 React Introduction ,默认将只是返回的信息。 您也可以设置 `element: false` 仅仅返回一个消息.

-   **需要2个参数**
-   消息: 来自验证器的消息 .
-   类Name (可选) : 将可选择提供, 这样您可以在每次验证的基础上更改类名 .

```jsx
this.validator = new SimpleReactValidator({
  element: message => <div>{message}</div>
  // OR
  element: (message, className) => <div className={className}>{message}</div>
})
```

#### 2\. 类Name

要传递到元素的类的字符串, 默认为 `srv-validation-message` 并且可以被覆盖.

#### 3\. 信息:

接受一个对象来覆盖验证信件。 它还接受一个会覆盖所有信件的默认值 .

```jsx
this.validator = new SimpleReactValidator({
  messages: {
    email: 'That is not an email.'
    // OR
    default: 'Validation has failed!'  // will override all messages
  },
})
```

#### 4\. 验证者:

接受自定义验证对象。 见 [自定义验证器](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-custom-validators) 关于定义自定义验证符的更多信息.

#### 5\. 自动更新日期:

接受一个反应实例,并在信件被自动显示和隐藏时自动调用. [更多关于自动更新的日期](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-note-autoforceupdate)

#### 6\. 地点:

接受带有您选择的本地化消息的字符串. **要做到这一点,正确的语言文件也需要被加载到您的前端.** [当前支持的语言](https://github.com/dockwa/simple-react-validator/tree/master/src/locale)帮助翻译项目用途 [此文件作为模板.](https://github.com/dockwa/simple-react-validator/blob/master/src/locale/template-en.js)

```jsx
// sets french default validation messages.
this.validator = new SimpleReactValidator({locale: 'fr'});
```

您可以应用自定义信件 [信件](https://npmcn.com/package/%40crystaldelta/simple-react-validator/#readme-3-messages) 选项。 然而,您也可以应用一种自定义语言,供您以后随 `addLocale` 类法.

```jsx
SimpleReactValidator.addLocale('klingon', {
  accepted: 'Hab SoSlI’ Quch!',
  email: 'Heghlu’meH QaQ jajvam'
});
...
this.validator = new SimpleReactValidator({locale: 'klingon'});
```

# 自定义验证器

你可以写自定义规则,以便使用验证. 一条规则有四个选项:

1.  消息: 当验证失败时, 将会显示消息 。 :属性将被替换为 _人性化_ 名称为您提供的您正在验证的属性( 支持 snake case 或 cameasCase) .
2.  规则:接受一个块,如果验证器通过,则返回真实,如果失败,则输入错误.

-   **需要3个参数**
-   val: 正在验证的值 .
-   段落 : 包含参数的数组传递到验证器中 .
-   验证符 : 校验对象, 允许您访问诸如 `validator.helpers.textRegex(val, regex)` 它返回真实或虚假,如果regex通过.

3.  信件重置( 可选) : 接受块用于修改并返回苍蝇上的信件 .

-   **需要2个参数**
-   电文:以上电文.
-   段落 : 包含参数的数组传递到验证器中 .

4.  需要( 可选) : 如果您想要在应用时隐含对验证符的要求, 则为真 。 默认情况下不要求所有验证符 。 相当于添加 `required` 每个验证定义.

示例

```javascript
constructor() {
  this.validator = new SimpleReactValidator({
    validators: {
      ip: {  // name the rule
        message: 'The :attribute must be a valid IP address and must be :values.',
        rule: (val, params, validator) => {
          return validator.helpers.testRegex(val,/^(?!0)(?!.*\.$)((1?\d?\d|25[0-5]|2[0-4]\d)(\.|$)){4}$/i) && params.indexOf(val) === -1
        },
        messageReplace: (message, params) => message.replace(':values', this.helpers.toSentence(params)),  // optional
        required: true  // optional
      }
    }
  });
}
```

用法 :

```jsx
render: function() {
  return (
    <div className="container">
      <h1>Give Me Your IP</h1>
      <div className="form-group">
        <label>IP Address</label>
        <input className="form-control" value={this.state.ip} onChange={this.setIP} />
        {this.validator.message('ipAddress', this.state.ip, 'required|ip:127.0.0.1')}
      </div>
      ...
    </div>
  );
},
```

## 常见问题

### @crystaldelta/simple-react-validator 是什么？

由Laravel验证所启发的简单反应形式验证器\.

### 如何安装 @crystaldelta/simple-react-validator？

在项目目录运行 npm install @crystaldelta/simple-react-validator，或使用 pnpm add / yarn add / bun add。

### @crystaldelta/simple-react-validator 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @crystaldelta/simple-react-validator 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @crystaldelta/simple-react-validator 可以商用吗？

@crystaldelta/simple-react-validator 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @crystaldelta/simple-react-validator 的下载量有多少？

根据 npm 官方下载统计，@crystaldelta/simple-react-validator 在 2026/10/11 – 2026/11/09 这 30 天内被下载 9,601 次，日均约 320 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @crystaldelta/simple-react-validator 还在维护吗？

最新版本 1\.6\.0 发布于 2021/03/19（5 年前）；至今共发布 1 个版本，其中过去 12 个月发布了 0 个；首次发布于 2021/03/19。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

