我的Json模式:
{
"type" : "object" ,
"properties" : {
"status" : {
"type" : "string" ,
"pattern" : "(OPEN|CLOSE)/i"
} ,
"phone" : {
"type" : "string" ,
"pattern" : "[0-9a-zA-Z_\\s]+"
}
}
}
我的输入:
{
"status" : "open" ,
"phone" : "9080245591"
}
我尝试使用json模式检查输入,但是json验证器抛出以下错误。 pattern
值是错误的。因此如何解决。
并且也会引发String 'open' does not match regex pattern '(OPEN|CLOSE)/i'.
这个错误
答案 0 :(得分:2)
我在您的架构中发现了两个问题:
/i
之类的标志。您可以通过将标志添加到表达式本身(?i)
中来解决此问题。InBasicLatin
字符集。应该IsBasicLatin
。固定模式:
{
"type" : "object" ,
"properties" : {
"status" : {
"type" : "string" ,
"pattern" : "^(?i)(OPEN|CLOSE)$"
} ,
"phone" : {
"type" : "string" ,
"pattern" : "[0-9a-zA-Z_\\-\\.\\$@\\?\\,\\:\\'\\/\\!\\P{IsBasicLatin}\\s]+"
}
}
}
注意:我对phone
的模式不了解,所以我只是解决了错误,但没有碰到它。