我需要验证字符串架构 format:"date"或 format:"date-time"以仅接受ISO 8601但也允许空字符串 "" (应使用所需的架构单独检查 "" 要求)。
{
"datetime1": {
"type": "string",
"format": "date-time",
}
}
Run Code Online (Sandbox Code Playgroud)
但是,本机 ajv 格式解析器不允许传递空字符串“”。如何使其允许空字符串,并仍然验证 ISO 8601?
我真的必须使用编写自己的格式检查器吗ajv.addFormat()?我也有同样的问题"format": "email",我还需要“”才有效。
注意:我无法修改架构,因此无法添加默认值。
让我们尝试使用 oneOf
date_to: {
type: 'string',
oneOf: [
{
maxLength: 0
},
{
format: 'date-time',
minLength: 1
}
]
},
Run Code Online (Sandbox Code Playgroud)
在第一个对象中,它将允许空字符串。在第二个对象中,它将根据您的格式检查输入