忽略JSON模式的长度验证中的空格

时间:2017-07-30 17:46:08

标签: jsonschema

假设你有这个简单的架构

{
  "type": "string",
  "minLength": 2,
}

"ab"有效,但值"a "" "也有效。有没有办法在验证长度时忽略空格,所以在这个例子中只有"ab"有效?

2 个答案:

答案 0 :(得分:4)

这样的事情应该有效:

{
  "pattern": "^(\\s*\\w\\s*){2,}$"
}

"至少2个组,其中每个组只有一个非空格字符(可选择用空格字符包围)"。

"" -> false
"  " -> false
"   " -> false
"  a" -> false
"a  " -> false
"  a  " -> false
"  a  b  " -> true
"ab" -> true

答案 1 :(得分:0)

我对JSON架构知之甚少,无法确切地说是否有办法用length属性做你要求的事情。但是,如果您知道允许使用哪些非空白字符,则可以执行以下操作,允许使用任意数量的空白字符以及两个必需字符(在本例中为字母字符)。

注意:我在easy testing

的数组中进行了声明
{
  "type": "array"
  , "items": {
      "type":"string"
      , "pattern": "[A-Za-z]\\s*[A-Za-z]"
  }
}

一些测试:

[
  "ab"
  , "a " // fails
  , "  " // fails
  , "cz"
  , "a    b"
  , "  a b"
  , "  b" // fails
]