npm 包 @anyhowstep/validation 使用教程

1. 什么是 @anyhowstep/validation 包

在前端开发过程中,表单验证是非常常见的操作。为了方便开发人员进行表单验证,有很多成熟的表单验证库可供选择。其中,@anyhowstep/validation 是一款优秀的表单验证库,可以有效地简化表单验证的代码。

@anyhowstep/validation 是一个基于 TypeScript 的表单验证库,可以很方便地在所有支持 TypeScript 的环境中应用。该库具有以下特点:

  • 提供了一套简单而强大的验证 API,可用于检查输入是否符合特定要求。
  • 支持自定义消息,可以方便地展示自己的错误信息。
  • 支持自定义验证规则,可以根据具体的业务规则进行扩展。
  • 支持异步验证。

2. 安装和使用

2.1 安装

使用 npm 进行安装:

--- ------- ----------------------

2.2 使用

在 TypeScript 中,我们可以通过以下方式使用 @anyhowstep/validation:

------ - --------- - ---- -------------------------

----- --------- - --- -----------
  --------- -
    --------- ----
  --
  ------ -
    --------- -----
    ------ ----
  --
  --------- -
    --------- -----
    ---------- -
  -
---

--------------------
  --------- -------
  ------ ---------------------
  --------- -------
---------- -- -
  ----------------------- ---------
----------------- -- -
  --------------------
---

上述代码中,我们首先通过 import 导入了 Validator 类,然后通过 new Validator 创建了一个验证器。在创建验证器时,我们需要传递一个对象,该对象中包含了要验证的字段及其验证规则。

字段名作为对象的键,而验证规则则作为值。在上述代码中,我们为 usernameemailpassword 这三个字段分别定义了验证规则。

验证规则中,如果要求该字段必填,则可以设置 required: true。如果要求该字段为邮箱格式,则可以设置 email: true。如果要求该字段的长度不少于 6,则可以设置 minLength: 6

最后,我们通过 validator.validate 方法对输入进行验证。如果验证通过,则返回一个 Promise 对象,并输出 Validation passed。如果验证失败,则 catch 方法会接收到一个错误信息数组。

3. 自定义消息

@anyhowstep/validation 提供了很方便的自定义消息功能,可以让我们展示自己的错误信息。

例如,我们可以修改上述代码中的密码长度为 5,然后添加一个自定义错误消息:

------ - --------- - ---- -------------------------

----- --------- - --- -----------
  --------- -
    --------- ----
  --
  ------ -
    --------- -----
    ------ ----
  --
  --------- -
    --------- -----
    ---------- - -------- --------- - --- ------ - -
  -
---

--------------------
  --------- -------
  ------ ---------------------
  --------- ------
---------- -- -
  ----------------------- ---------
----------------- -- -
  --------------------
---

上述代码中,我们在 minLength 规则中添加了一个 message 属性,指定了自定义的错误信息。当密码长度少于 6 位时,会显示该自定义错误信息。

4. 自定义验证规则

@anyhowstep/validation 还支持自定义验证规则,可以根据具体业务规则进行扩展。例如,我们可以创建一个规则,要求用户名必须是小写字母:

------ - ---------- ---- - ---- -------------------------

----- --------- - --- -----------
  --------- -
    --------- -----
    ---------- ----
  -
---

-- -----------------
------------------------------ ------- ---- -- -
  -- ------- ----- --- --------- -
    ------ ---------------------------
  -
  ----- ---------------- - -------------
  -- ------------------------------- -
    ------ ---------------------------
  -
  ------ ------------------
---

--------------------
  --------- ------
---------- -- -
  ----------------------- ---------
----------------- -- -
  --------------------
---

上述代码中,我们通过 validator.addRule 方法自定义了一个规则:lowercase。在自定义规则时,我们需要传递两个参数:

  • 规则名:即 lowercase
  • 验证函数:该函数接收一个参数 value,表示待验证的值。如果验证通过,则返回 Promise.resolve();否则返回 Promise.reject()

在上述代码中,我们首先在验证器中添加了该规则,然后在 username 的验证规则中使用了该规则。该规则要求用户名必须全是小写字母。如果用户名不符合该规则,则会显示相应的错误信息。

5. 异步验证

有时,我们需要进行异步验证,例如在验证用户名是否已存在时。这时,我们可以使用 async 关键字来定义异步规则。

例如,我们可以创建一个异步规则,要求用户名在数据库中不存在:

------ - ---------- ---- - ---- -------------------------

----- --------- - --- -----------
  --------- -
    --------- -----
    ---------- -----
    ----- ------------- ----- ------------- -
      -- ----------
      ----- ------ - ----- ---------------------------
      -- -------- -
        ------ -------------------------
      -
      ------ ------------------
    -
  -
---

-- ----
-------- -------------------------- -------- ---------------- -
  ------ --- --------------- -- -
    ------------- -- -
      ------------- --- ---------
    -- ------
  ---
-

--------------------
  --------- -------
---------- -- -
  ----------------------- ---------
----------------- -- -
  --------------------
---

上述代码中,我们定义了一个异步规则:unique。在异步规则中,我们可以使用 await 来进行异步操作。例如,在上述代码中,我们使用了一个 checkUsernameExists 函数来模拟检查用户名是否已存在的异步操作。

在规则中,如果遇到异步操作,则需要将该规则定义为异步规则,即添加 async 关键字,并返回一个 Promise 对象。

6. 总结

@anyhowstep/validation 是一款优秀的表单验证库,可以帮助开发人员高效地进行表单验证。在本文中,我们介绍了该库的安装和使用方法,以及自定义消息、自定义规则和异步验证等功能。

值得一提的是,在使用该库时,我们应该遵循 validation 的原则,即前端验证只是为了提高用户体验,不能替代后台验证。在实际开发过程中,应该通过前端验证来进行初步过滤和提示,然后通过后台验证来保证数据的安全和正确性。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedae48b5cbfe1ea0610dff


猜你喜欢

  • npm 包 fpcollect 使用教程

    前言 在前端编程中,通常需要处理大量数据。在数据处理过程中,我们经常会遇到需要对数组、对象等数据结构进行操作的场景。而 fpcollect 就是一个方便且高效的 JavaScript 工具库,专注于函...

    4 年前
  • npm 包 Puppeteer-Firefox 使用教程

    在前端开发中,我们可能需要对页面进行截图、自动化测试等操作。Node.js 提供的 Puppeteer 是一个很好的工具,可以帮我们控制 Chrome 或 Chromium。

    4 年前
  • npm 包 fpscanner 使用教程

    简介 fpscanner 是一个基于 JavaScript 的 npm 包,可以用于检测网站在用户端的帧率情况。该包可以在浏览器中进行使用,适用于前端开发者。 安装 在使用 fpscanner 前,你...

    4 年前
  • npm 包 eslint-config-aegir-standalone 使用教程

    前言 在前端开发过程中,我们经常需要遵循规范来写代码,这不仅有助于提高代码的可读性和可维护性,而且也能避免潜在的问题或错误。而 eslint 是目前非常流行的 JavaScript 代码检查工具,它可...

    4 年前
  • npm包 @activfinancial/cg-api-common 使用教程

    简介 @activfinancial/cg-api-common 是一个用于交易、行情等金融领域应用的开源 JavaScript 库。它提供了一些常用的方法,可用于执行原始数据的加工处理,而无需对底层...

    4 年前
  • npm 包 @activfinancial/cg-api-json 使用教程

    前言 在前端应用程序中,与后端交互是必不可少的。有时候,我们需要从后端获取数据并渲染到前端页面中。在这样的场景下,一个好用的后端 API 是非常重要的。而npm包 @activfinancial/cg...

    4 年前
  • npm 包 hadouken-js-adapter 使用教程

    前言 hadouken-js-adapter 是一个基于 OpenFin API 开发的 npm 包,它提供了一个轻量级的客户端库,可以在前端应用中通过 JavaScript 访问 OpenFin A...

    4 年前
  • npm 包 @types/resize-observer-browser 使用教程

    什么是 Resize Observer? Resize Observer 是一个可以观察一个元素的尺寸变化的 API。它可以让你检索任何元素的尺寸变化,而不需要使用 window.onresize 事...

    4 年前
  • npm包@activfinancial/middleware使用教程

    在前端领域,有很多常用功能都有对应的npm包,我们可以轻松地借用这些包的代码来完成我们的开发。@activfinancial/middleware就是这样的一个npm包,它为我们提供了一种非常简便的数...

    4 年前
  • npm 包 @types/promise.prototype.finally 使用教程

    前言 Promise.prototype.finally() 是 ES2018 规范引入的 Promise 原型链上的方法,由于 Promise 的状态一旦确定,就无法更改,因此需要使用 Promis...

    4 年前
  • npm 包 @file-services/path 使用教程

    在前端开发过程中,路径处理是一个非常常见的操作。而 @file-services/path 是一个非常实用的 npm 包,它提供了一些简单但非常实用的函数来处理路径,以便我们更轻松地进行相关操作。

    4 年前
  • npm 包 @file-services/memory 使用教程

    在前端开发中,我们经常需要处理文件和文件系统相关的操作。而 @file-services/memory 是一个非常方便的 npm 包,它提供了内存中的文件系统,可以在内存中快速的读写文件,不需要实际的...

    4 年前
  • npm 包 @angular-builders/jest 使用教程

    前言 在前端开发过程中,测试是非常重要的环节。而在 Angular 应用中,使用 Jest 进行单元测试的需求是非常普遍的。@angular-builders/jest 是一个能够使我们在 Angul...

    4 年前
  • npm 包 @abp/utils 使用教程

    在前端开发过程中,我们经常需要使用一些工具包来帮助我们快速开发。可以说,这些工具包是前端开发的必需品。一个好用的工具包不仅能够提高我们的开发效率,而且能够减少我们的重复劳动,提升我们的工作质量。

    4 年前
  • npm 包 @file-services/node 使用教程

    什么是 @file-services/node @file-services/node 是一个 Node.js 包,它提供了一组跨平台的文件系统 API,方便我们在 Node.js 环境下对文件进行操...

    4 年前
  • npm 包 @ngxs/router-plugin 使用教程

    在前端开发中,路由是页面导航的核心,它可以让用户在页面间快速切换,完成所需操作。@ngxs/router-plugin 是一个用于 Angular 应用中的路由插件,它可以帮助我们更加便捷和高效地管理...

    4 年前
  • npm 包 @file-services/types 使用教程

    在前端开发中,我们经常需要使用不同的文件操作工具来处理文件。为了更好地管理文件操作相关的代码,我们可以使用 npm 包 @file-services/types 提供的文件类型定义实现更高效的编码。

    4 年前
  • npm 包 @file-services/utils 使用教程

    在前端开发中,文件操作是一个必不可少的环节,而在实现文件操作时使用一些工具包可以大大的提高开发效率。@file-services/utils 就是这样一个优秀的工具包, 它提供了一系列在文件操作中常用...

    4 年前
  • npm 包 @file-services/overlay 使用教程

    简介 @file-services/overlay 是一个非常实用的 npm 包。它可以让开发者在文件系统中动态创建一个虚拟文件系统,以便方便地管理、操作文件和目录。

    4 年前
  • npm 包 @ngxs/storage-plugin 使用教程

    在 Angular 应用中使用状态管理工具 NGXS 时,我们时常需要将一些状态信息存储在浏览器的本地 Storage 中,以便实现数据的持久化。而 npm 包 @ngxs/storage-plugi...

    4 年前

相关推荐

    暂无文章