JSON 架构不支持某些正则表达式模式
JSON Schema Not Support Some Regex Pattern
My Json Schema :
{
"type" : "object" ,
"properties" : {
"status" : {
"type" : "string" ,
"pattern" : "(OPEN|CLOSE)/i"
} ,
"phone" : {
"type" : "string" ,
"pattern" : "[0-9a-zA-Z_\s]+"
}
}
}
My Input :
{
"status" : "open" ,
"phone" : "9080245591"
}
我尝试使用 json schema.But json 验证器检查输入,抛出以下错误。 pattern
值为wrong.So如何解决。
它也会抛出 String 'open' does not match regex pattern '(OPEN|CLOSE)/i'.
这个错误
我在您的架构中发现了两个问题:
- 目前规范不允许您为不区分大小写的匹配指定类似
/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
的模式,所以我只是修复了错误,但没有触及它。
My Json Schema :
{
"type" : "object" ,
"properties" : {
"status" : {
"type" : "string" ,
"pattern" : "(OPEN|CLOSE)/i"
} ,
"phone" : {
"type" : "string" ,
"pattern" : "[0-9a-zA-Z_\s]+"
}
}
}
My Input :
{
"status" : "open" ,
"phone" : "9080245591"
}
我尝试使用 json schema.But json 验证器检查输入,抛出以下错误。 pattern
值为wrong.So如何解决。
它也会抛出 String 'open' does not match regex pattern '(OPEN|CLOSE)/i'.
这个错误
我在您的架构中发现了两个问题:
- 目前规范不允许您为不区分大小写的匹配指定类似
/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
的模式,所以我只是修复了错误,但没有触及它。