npm 包 engined-validator 使用教程

阅读时长 8 分钟读完

前言

随着前端技术的发展,JavaScript 逐渐成为一种在 Web 开发中不可或缺的语言。在 Web 开发中,我们常常需要对用户传入的信息进行验证。在传统的开发中,我们会自己手动去实现验证函数,这样不仅费时费力,还容易出现漏洞。

随着 npm 包管理工具的兴起,一些优秀的第三方验证库应运而生,例如 engined-validator。本文将详细介绍 engined-validator 包的使用方法,并提供示例代码。

什么是 engined-validator

engined-validator 是一款 JavaScript 语言编写的验证库,可以方便地进行表单验证,支持浏览器和 Node.js 环境。该库主要特点如下:

  • 体积小:仅 4KB,不会对项目的性能造成影响。
  • 验证规则丰富:支持常用的验证规则,如必填、邮箱、手机号等。
  • 可扩展性强:可以自定义新的验证规则,方便根据项目需求进行扩展。
  • 错误提示友好:默认的错误提示符合常规的文字表述,也可以自定义错误提示语句。

快速开始

安装

你可以通过 npm 来安装 engined-validator:

或者直接通过 CDN 引入:

使用

在代码中引入 engined-validator:

在实际的应用中,你需要先定义规则集合对象,再调用验证方法验证数据是否符合要求:

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

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

上面的代码中,我们定义了一个规则集合对象 rule,包含了 email 和 phone 两个输入框的验证规则。 Validator 类接受一个规则集合对象作为参数。 validate 方法接受一个待验证数据对象,会返回一个 Promise。当数据验证通过时,Promise 马上 resolve。否则返回一个 reject,具体的错误信息存储在 error 对象的 errors 属性中。

规则集合对象的配置和扩展

规则集合对象 rule 是一个键值对,其属性名通常是表单元素的名称,属性值是一个包含验证规则的数组。每个验证规则对象中至少包含一个验证属性和一条错误提示信息。常用的验证属性有:

  • required:必填项。
  • type:数据类型。
  • min:最小值。
  • max:最大值。
  • len:长度。
  • pattern:正则表达式。
  • custom:自定义函数验证。

除了上面列出的验证属性之外,您还可以根据需要定义自己的验证对象。例如,要验证一个字符串是否是特定长度的字符串,可以定义一个新的验证对象 exact,如下所示:

addRule 方法接受三个参数:

  • ruleName:验证规则名称。
  • validator:用于验证值的函数,函数应该接受至少一个参数,即要验证的值。如果验证通过,返回 true;否则返回 false。除了值之外,验证函数可以接受任意数量的其他参数;这些参数将传递给 addRule 方法的第三个参数。
  • message:用于描述错误的字符串或用于动态生成错误的函数。如果要动态生成消息,请使用函数格式,并将其作为规则对象的 message 属性值。

我们可以将刚刚定义的 exact 对象添加到 rule 中:

这样就可以在表单中使用 exact 规则进行验证了。

组合验证规则

在表单验证中,通常需要同时验证多项内容。为了方便起见,engined-validator 还提供了 andor 两个组合规则,可以将多个规则组合在一起。例如:

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

上面的代码中,我们使用 equal 规则将 repeatPassword 的值与 password 的值进行比较。equal 规则需要一个字符串类型的参数,用于指定进行比较的字段名。在这个例子中,我们指定了 password 作为比较的字段名。

我们还可以使用 andor 规则,将多个规则组合在一起:

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

上面的代码中,我们使用 or 规则将 requiredtype 两个规则组合在一起,一旦满足其中一个规则,验证通过。这里的验证规则表示,greeting 字段不能为空或必须为字符串类型。

自定义错误提示

engined-validator 默认的错误提示信息可能不符合你的项目需求,因此我们可以通过传递第三个参数来自定义错误提示信息。当然,还可以通过 setOptions 方法全局设定错误提示信息:

setOptions 方法接受一个对象作为参数,可包含以下属性:

  • default:默认的错误提示信息。
  • required:必填项的错误提示信息。
  • 其他:其他验证规则的错误提示信息。

总结

以上就是 engined-validator 的用法和配置,通过学习本文,你将会对表单验证有更深的了解,进而提高前端项目的开发效率。engined-validator 是一个简单易用,性能不错的验证库,希望能够为你的项目或产品带来帮助和提升。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055ec181e8991b448dc839

纠错
反馈