如何使JSON Schema对全空格字符串抛出自定义验证错误?
JSON Schema 处理仅含空格的name字段验证问题
现有一个name字段要求为非空字符串,当前使用的JSON Schema配置如下:
"properties":{ "name": { "type": "string", "minLength": 1 } }
但用JsonSchema.validate验证时,像" "这种仅含空格的字符串会通过验证,需要针对这个场景抛出自定义错误。
解决方法
要拦截纯空格的字符串,只需给name的Schema规则加上正则匹配,同时配置自定义错误信息(取决于你用的验证库是否支持,比如AJV就支持errorMessage):
修改后的完整Schema示例:
"properties":{ "name": { "type": "string", "minLength": 1, "pattern": "\\S+", "errorMessage": { "pattern": "name不能仅包含空格", "minLength": "name不能为空字符串" } } }
\\S+正则会匹配至少一个非空白字符,纯空格的字符串会因为不满足这个规则被拦截- 如果你的验证库不支持
errorMessage关键字,可以在验证失败后,判断错误类型(比如是pattern不匹配的错误),手动抛出对应的自定义错误提示。
内容的提问来源于stack exchange,提问作者NIshank
相关产品推荐
相关产品推荐

