簡體   English   中英

Ajv javascript 模式驗證與鍵值中的正則表達式

[英]Ajv javascript schema validation with regex in key value

我有一個架構可以在 Node.js 中使用 Ajv 進行驗證。 json 的屬性有一個循環模式來驗證,可能的鍵值是 1,2,3,4,5。 問題是,有可能使用正則表達式僅表達一個屬性,該屬性將向 ajv 解釋 json object 的鍵值可能是 integer 介於 1 和 5 之間嗎? 如果是這樣,怎么辦?

下面是當前代碼的示例。

const Ajv = require("ajv")
const ajv = new Ajv()

const validate_setparameters = ajv.compile(
    {
        type: "object",
        properties: {
            "1": { type: "integer"},
            "2": { type: "integer"},
            "3": { type: "integer"},
            "4": { type: "integer"},
            "5": { type: "integer"}
        },
        additionalProperties: false,
        minProperties: 1
    }
)

console.log(validate_setparameters({"3":1}))

看到它: https://ajv.js.org/json-schema.html#patternproperties

因此,您的代碼將如下所示:

const Ajv = require("ajv")
const ajv = new Ajv()

const validate_setparameters = ajv.compile(
    {
        type: "object",
        patternProperties: {
            "^[1-5]{1}$": { type: "integer"}
        },
        additionalProperties: false,
        minProperties: 1
    }
)

console.log(validate_setparameters({"3":1}))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM