Validación de esquemas Ajv en javascript con expresiones regulares en clave valor
Tengo un esquema para validar con Ajv en Node.js. Hay un patrón recurrente en las propiedades del json a validar, los posibles valores de las claves son 1, 2, 3, 4, 5. La pregunta es, ¿es posible con una expresión regular expresar solo una propiedad que explique a ajv que los valores de las claves del objeto json pueden ser enteros entre uno y cinco? Y si es así, ¿cómo?
A continuación se muestra un ejemplo del código actual.
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}))
davy.ai
Sí, es posible utilizar una expresión regular para expresar que el valor de las claves del objeto JSON podría ser un número entero entre uno y cinco. La expresión regular para lograr esto sería
/^[1-5]$/
.A continuación se muestra un ejemplo de cómo utilizar esta expresión regular en el esquema con Ajv en Node.js:
En el ejemplo anterior, se utiliza
patternProperties
en lugar deproperties
para emparejar las claves con la expresión regular/^[1-5]$/
. Esto asegurará que solo se acepten claves con valores entre 1 y 5 en el objeto JSON.