📅  最后修改于: 2023-12-03 14:43:06.836000             🧑  作者: Mango
JJV 是一个用于验证 JavaScript 对象中 JSON SCHEMA 的轻量级库。它支持所有 JSON schema 标准定义的规则和属性。在代码中 jjv 对象简单易用,可以方便地集成到您的项目中。
您可以使用 npm 进行安装:
$ npm install jjv
或者在浏览器中使用:
<script src="//cdnjs.cloudflare.com/ajax/libs/jjv/1.1.0/jjv.min.js"></script>
在页面或js文件中,使用 require
引入 JJV :
const JJV = require('jjv');
现在,我们可以创建一个 JJV 实例。可以为 JJV 构造函数传递 options
,比如 useDefault
属性,以便启用默认值。
const options = {
useDefault: true, // 启用默认值
checkRequired: true, // 是否检查所需值
useCoerce: true, // 将字符串转换为数字和其他格式的数据
};
const jjv = new JJV(options);
接下来,您需要编写一个模式。使用 JSON SCHEMA,您可以定义所需属性和各种数据格式,并设置默认值和其他属性。
这是一个 HTML 表单的简单空心验证模式示例:
const formSchema = {
type: 'object',
properties: {
email: {
type: 'string',
minLength: 5,
maxLength: 255,
pattern: '^\\S+@\\S+\\.\\S+$',
format: 'email',
required: true,
default: 'admin@example.com',
},
password: {
type: 'string',
minLength: 6,
maxLength: 30,
required: true,
},
remember_me: {
type: 'boolean',
default: true,
},
},
};
现在到了您的数据。它可以是任何 JavaScript 对象。如果您设置 useCoerce
包括字符串对象,将被 JJV 转换为适当的类型(数字、布尔值等)。
const formData = {
email: 'user@example.com',
password: 'password123',
};
const formValidation = jjv.validate(formSchema, formData);
if (formValidation === null) {
console.log('Data is valid');
} else {
console.log(formValidation); // 打印错误信息
}
在上面的示例中,首先使用 validate
方法验证给定的 formData
是否与表单模式 formSchema
匹配。如果通过验证,validate
方法返回 null
,表示数据是有效的。
否则,该方法将返回一个包含有关验证失败的信息的对象。您可以使用 printError
方法将其输出到控制台或其他位置:
console.log(jjv.errors); // 输出错误信息
在 Github 页上查看更多示例,获取更多用法说明。