什么是 envalidate
envalidate 是一个用于 JavaScript 的校验器,它可以校验任何类型的 JavaScript 对象或 JSON 对象,并返回校验结果。envalidate 的语法简单易用,支持自定义校验规则。
如何安装 envalidate
使用 npm 安装 envalidate:
npm install envalidate
如何使用 envalidate 进行校验
使用 envalidate 进行校验通常需要三个步骤:
- 定义校验规则;
- 执行校验;
- 处理校验结果。
定义校验规则
校验规则定义了我们需要校验的对象的结构以及它们的校验条件。在 envalidate 中,我们用 Schema 对象来定义校验规则。下面的示例展示了一个校验用户名和密码的 Schema 对象:
-- -------------------- ---- ------- ----- - ------ - - ---------------------- ----- ----------- - --- -------- --------- - --------- ----- ----- ------- -- --------- - --------- ----- ----- ------- -------- ------------------- ---------- -- ---------- --- -- ---
在这个示例中,我们定义了一个 loginSchema 对象,它包含了两个字段:username
和 password
。对于 username
字段,我们只定义了类型为字符串和必填的校验规则。对于 password
字段,我们定义了类型为字符串、必填、字符类型为字母、数字、下划线、横线、长度为 6 至 12 个字符的校验规则。
执行校验
定义好 Schema 对象之后,我们就可以使用它来执行校验了。下面是一个示例:
const validationResult = loginSchema.validate({ username: 'example', password: 'password123' }); console.log(validationResult.valid); // true
在这个示例中,我们传入了一个对象 { username: 'example', password: 'password123' }
,并使用 validate
方法执行了校验。校验结果将保存在 validationResult
对象中。
处理校验结果
校验结果保存在 validationResult
对象中,我们可以使用它来获取校验的结果:
if (!validationResult.valid) { console.log(validationResult.errors.map(e => e.message).join('\n')); }
在这个示例中,我们判断了校验是否通过,并打印了出错信息。如果校验通过,那么 validationResult.errors
将为空数组。如果校验失败,那么 validationResult.errors
将包含所有的错误信息。
自定义校验规则
envalidate 允许我们自定义校验规则,下面的示例展示了如何自定义一个校验手机号码的规则:
const { Validator } = require('envalidate'); Validator.registerRule('phone', (value, {negate}) => { const regex = /^1[0-9]{10}$/; const isMatch = regex.test(value); return negate ? !isMatch : isMatch; }, (context) => `${context.key} must be a valid phone number`);
在这个示例中,我们使用了 registerRule
方法注册了一个名为 phone
的自定义校验规则。它使用正则表达式匹配中国大陆的手机号码,并使用 negate
来标记校验结果是否为 "true" 或 "false"。registerRule
方法的第三个参数是一个用于生成错误信息的回调函数。
注册好自定义规则之后,我们就可以在 Schema 中使用它了:
const phoneSchema = new Schema({ phone: { required: true, type: String, phone: true } });
在这个示例中,我们定义了一个新的 Schema 对象,其中包含了一个 phone
字段,它必填、类型为字符串,并使用了我们注册的 phone
校验规则。
总结
envalidate 在 JavaScript 这门语言中提供了便捷、简单和灵活的校验工具,它提供了许多默认的校验规则,并允许开发者自定义校验规则。在日常的开发工作中,envalidate 可以帮助我们提高代码质量和开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066e25a563576b7b1ecea4