I need to validate string schema format: "date"
or format: "date-time"
to accept only ISO 8601 but also allow empty string "" (the "" requirement should be separately checked using the required schema).
{
"datetime1": {
"type": "string",
"format": "date-time",
}
}
However, the native ajv format parser does not allow empty string "" to pass. How do I make it allow empty string, and still validate ISO 8601?
Do I really have to write my own format checker using ajv.addFormat()
? I also have the same issue for "format": "email"
, where I also need "" to be valid.
Note: I can't modify the schema, so I can't add defaults.
Lets try to use oneOf
date_to: {
type: 'string',
oneOf: [
{
maxLength: 0
},
{
format: 'date-time',
minLength: 1
}
]
},
in the first object, it will allows empty string. In the second object, it will check input based on your format