在json架构中使用regex来验证字符串是否没有空格?

时间:2017-01-29 03:13:04

标签: java json regex

我已经为.json文件验证编写了模式。我需要验证字符串没有空格。我发现我可以使用" pattern":和regex表达式,但它不起作用。 模式验证不起作用。

my json file
// @Validation(SchemaFile=config-schema.json)
{
  "StoresList": [
    {
      "StoreId": "Store1",
      "EntityIdList": [
        "item1",
        "item_2",
        "item_3"
      ]
    },
    {
      "StoreId": "Store2",
      "EntityIdList": [
        "item1",
        "item_2",
        "item_3"
      ]
    }
  ]
}

schema file
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "StoresList": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "StoreId": {
            "type": "string"
          },
          "EntityIdList": {
            "type": "array",
            "items": {
              "type": "string"
              "pattern": "^\\s"
            }
          }
        },
        "required": [
          "StoreId",
          "EntityIdList"
        ]
      }
    }
  },
  "required": [
    "StoresList"
  ]
}

2 个答案:

答案 0 :(得分:2)

你可以试试这个:

^[^\s]*$

Explanation

在这里试试:

const regex = /^[^\s]*$/gm;
const str = `abzzc
I need to validate that a string is not having a whitespace.
abc
pqerweras dfsadfj`;
let m;

while ((m = regex.exec(str)) !== null) {
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
  console.log(m[0]);

}

答案 1 :(得分:0)

这对我有用

"username": {
    "type": "string",
    "pattern": "^[^\\s]*$",
}