如何使用JSON模式(ajv)验证数字中的数字位数?

时间:2018-11-23 16:00:00

标签: jsonschema ajv

在两因素身份验证(2FA)中,表格询问仅由6位数字组成的代码 例如:064964

我使用著名的Ajv JSON Schema Validator

我无法为此代码建立验证方案:

export const code = {
  'type': 'object',
  'properties': {
     code: {
      'type': ['number'],
       'minimum': 6,
      'minLength': 6
    },
  },
  'required': ['code'],
};

你能帮我吗?

1 个答案:

答案 0 :(得分:1)

minLength仅适用于字符串,不适用于数字。 给定的代码可以以0开头,因此您不能执行minimum: 100000

如果要使用纯JSON架构执行此操作,则需要将代码表示为字符串而不是数字。

JSON模式没有用于“数字中的数字数量”的验证关键字。

话虽如此,ajv确实允许您添加自己的关键字,并为它们编写验证代码,但这意味着您的架构不能被其他人使用。