npm 包 forcible 使用教程

在开发前端项目的过程中,我们经常需要处理用户输入的数据,这时候对数据进行合法性校验就显得尤为重要了。要实现合法性校验,我们可以使用一些现有的库,比如 jQuery Validate 或者 Validator.js。不过,这些库的体积较大,很多时候只需要简单的校验规则,使用这些库显得有些浪费。

而 forcible 就是一个可以轻松解决这个问题的 npm 包。它是一个超轻量级的表单校验库,支持自定义校验规则,可以根据需要进行快速的自定义设置。在本文中,我们将详细介绍 forcible 的使用方法。

安装:

在安装 forcible 之前,我们需要先安装 Node.js。安装完成之后,我们可以通过以下命令来安装 forcible :

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

使用方法:

引入 forcible

在使用 forcible 之前,我们需要先引入它。我们可以使用以下代码将它引入到项目中:

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

基本使用

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

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

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

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

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

在上述代码中,我们首先定义了三种规则:年龄、邮件和密码。然后我们定义了一个数据对象,其中包含了三个属性 age、email 和 password。

使用 validator.validate(rules, data) 函数进行数据验证。如果数据校验通过,则返回一个空对象( {} )。如果数据校验不通过,则会返回一个以属性名为 key,每条不通过校验规则的信息组成的数组为 value 的对象。

以上面的数据为例,输出结果如下:

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

自定义规则

我们可以自定义规则来满足特定业务的需求。例如,我们需要校验某一字符串的长度是否等于特定长度:

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

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

在上述代码中,我们首先使用 forcible.defineRule() API 来定义了一个长度校验规则。然后我们定义了一个规则对象,在对象中包含了要校验的属性 code。需要注意的是,我们在规则对象中定义的 type 和明确定义的 exactLength 相对应。

在运行完上述代码之后,你就可以使用该规则来校验你的数据了。示例代码如下:

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

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

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

运行以上代码之后,你会得到以下输出:

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

异步规则

在某些情况下,校验规则可能需要异步验证。例如,我们需要校验一个用户名是否已经被占用:

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

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

在上述代码中,我们使用 Promise 来模拟了一个异步请求获取已占用的用户名。在规则函数中,如果输入的用户名已占用,则会 reject 该 Promise,并传递错误消息;如果未被占用,则会 resolve 该 Promise。

在运行完上述代码之后,你就可以使用该规则来校验你的数据了。示例代码如下:

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

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

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

运行以上代码之后,你会得到以下输出:

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

复杂表单数据的校验

在上面的例子里,我们只是校验了简单的数据。但在实际开发中,经常需要校验复杂的表单数据。我们可以对每个表单项都单独设置校验规则,但这样显然不是最好的选择。forcible 提供了更加灵活的表单校验方法,可以轻松地设置复杂的规则。

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

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

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

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

在上述代码中,我们定义了一个复杂的规则对象。规则对象包含了三个属性:个人信息、联系方式和密码。每个属性都包含了多个表单项,同时每个表单项都有自己的校验规则。

在运行完以上代码之后,你会得到以下输出:

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

表单实时校验

我们还可以在用户输入表单的过程中进行实时校验。下面是一个简单的实现方式:

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

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

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

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

在上述代码中,我们在用户输入过程中监听 input 事件。当用户输入的时候,我们使用 setTimeout() 函数进行延迟处理,等待 500 毫秒之后再进行校验。这样可以有效地减少校验需要的资源和时间,提高性能。

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


猜你喜欢

  • npm包nick-flex使用教程

    在前端开发中,使用CSS编写布局时,经常会遇到不同分辨率下的自适应布局问题。这时候,可以使用flex布局来解决这个问题。为了方便地实现flex布局,开发人员可以使用npm包nick-flex。

    3 年前
  • npm 包 `list-block` 使用教程

    list-block 是一个常用于前端开发中的列表组件,它可以简化列表的创建和渲染,提高开发效率。本文将详细介绍如何使用 list-block 包。 安装 list-block 使用 npm 安装 l...

    3 年前
  • npm 包 blear.ui.date-time-toucher 使用教程

    简介 blear.ui.date-time-toucher 是一个开源的 JavaScript 库,它提供了一种简单且功能强大的方式来处理日期和时间选择器。它是基于 jQuery 和 Moment.j...

    3 年前
  • npm 包 blear.ui.draggable-list 使用教程

    在前端开发中,拖拽列表是一个常见的组件需求。而 blear.ui.draggable-list 是一个方便易用的 npm 包,可以快速实现拖拽列表功能。 本文将介绍 blear.ui.draggabl...

    3 年前
  • npm 包 droplr-cli 使用教程

    介绍 npm 包 droplr-cli 是一个 node.js 命令行工具,用于使用 Droplr 上传、分享和管理文件。Droplr 是一种云服务,可以帮助用户上传和分享文件,包括文本、图像和视频等...

    3 年前
  • npm 包 react-native-dropdown-modal 使用教程

    简介 react-native-dropdown-modal 是一款基于 React Native 的下拉选择框组件。它可以帮助开发者快速构建下拉选择框,具有自定义样式,动画效果等特性。

    3 年前
  • npm 包 blackfyre 使用教程

    前言 blackfyre 是一个基于 React 的 UI 组件库,提供了丰富的组件来帮助开发者快速构建漂亮的 UI 界面。作为一个前端开发人员,我们经常需要使用各种 UI 组件来搭建各种功能和界面。

    3 年前
  • npm 包 node-phpass 使用教程

    在前端开发中,我们经常需要使用密码哈希算法来确保用户密码的安全性。而 node-phpass 是一个基于 PHP 版本 phass 库 的 Node.js 版本库,可以用来实现密码哈希功能。

    3 年前
  • npm 包 azure-applicationinsights-query 使用教程

    随着云计算和大数据越来越流行,监控和分析应用程序的需求变得愈加紧迫。Azure 应用程序洞察是一项云服务,它为您提供诸如分布式跟踪、异常分析和日志分析等功能。而 npm 包 azure-applica...

    3 年前
  • npm 包 efrolic 使用教程

    什么是 efrolic? efrolic 是一个基于 React 的框架,旨在为开发者提供快速构建单页面应用程序的工具。它提供了许多有用的功能,例如路由管理、状态管理、网络请求等等。

    3 年前
  • npm 包 @rgba-image/clone 使用教程

    简介 在前端开发中,很多时候我们需要处理图片,而RGBA格式是最常用的图片格式之一。在处理RGBA格式图片时,我们可能需要对图片进行复制、修改等操作,而这个时候就有一个便捷的工具——npm包 @rgb...

    3 年前
  • npm 包 hyfe-cli 使用教程

    简介 在前端开发中,我们经常需要使用一些工具来增加我们的工作效率,例如构建工具、自动化测试等。而 hyfe-cli 就是这样一个工具,它是一个基于 Node.js 开发的命令行工具,用于快速创建 We...

    3 年前
  • 使用 Swagger-ui-express-versioning npm 包教程

    简介 Swagger-ui-express-versioning 是一个 Node.js 的 npm 包,用来在 Express 应用中快速地集成 Swagger UI,并且支持版本管理的功能。

    3 年前
  • npm 包 electron-clipboard-watcher2 使用教程

    在前端开发中,我们经常需要使用到剪贴板。 electron-clipboard-watcher2 是一个 NodeJS 包,它提供了在 Electron 应用程序中监听剪贴板事件的能力。

    3 年前
  • npm包joi-yml使用教程

    前言 前端开发中,数据校验是一个必不可少的步骤。为了简化数据校验的流程,npm上有很多优秀的数据校验的工具,其中joi-yml是一个小而精悍的包。在本文中,我们将一步步学习如何使用joi-yml。

    3 年前
  • npm 包 string-to-buffer 使用教程

    前言 在前端开发中,我们常常需要对数据进行加密或者解密操作,对于一些加密或者解密算法,大多数情况下是需要进行二进制数据的操作的,而 JavaScript 中的字符串类型并不支持这些操作。

    3 年前
  • npm 包 @geekcash/mix-lib 使用教程

    前言 随着前端技术的不断进步,工具的多样性以及开发流程的不断变化,前端库和框架也不断涌现。其中,npm 包作为前端社区最为活跃的一种开源形式,被广泛应用于前端开发。

    3 年前
  • npm 包 create-dear-app 使用教程

    简介 create-dear-app 是一个基于 React 的快速创建前端工程化项目的 npm 包,它可以帮助开发者快速搭建 React 项目框架,同时支持常用的 React 配置、webpack、...

    3 年前
  • 前端技术学习 | npm 包 graphql-artisan 使用教程

    GraphQL 是一种用于 API 的查询语言,它有着高效、强大、灵活、易于理解和使用等优点。GraphQL 在前端技术领域也变得越来越流行,为前端开发人员提供了更多的选择。

    3 年前
  • npm 包 azure-arm-machinelearning 使用教程

    Azure Machine Learning 是微软提供的云平台,用于让开发人员和数据科学家轻松地构建、部署和管理机器学习模型。它提供了许多强大的功能,包括自动化机器学习、可视化构建和部署、实时预测和...

    3 年前

相关推荐

    暂无文章