📜  jjv - Javascript (1)

📅  最后修改于: 2023-12-03 14:43:06.836000             🧑  作者: Mango

JJV - Javascript JSON 验证器

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 页上查看更多示例,获取更多用法说明。