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'. 这个错误

我在您的架构中发现了两个问题:

  1. 目前规范不允许您为不区分大小写的匹配指定类似 /i 的标志。您可以通过将标志添加到表达式本身来解决此问题 (?i).
  2. 您正在指定 InBasicLatin 字符集。那应该是 IsBasicLatin.

固定模式:

{
   "type" : "object" ,
   "properties" : {
      "status" : {
        "type" : "string" ,
        "pattern" : "^(?i)(OPEN|CLOSE)$"
      } ,
      "phone" : {
        "type" : "string" ,
        "pattern" : "[0-9a-zA-Z_\-\.\$@\?\,\:\'\/\!\P{IsBasicLatin}\s]+"
    }
  }
}

注意:我无法理解您 phone 的模式,所以我只是修复了错误,但没有触及它。