在 json 模式中使用正则表达式来验证没有空格的字符串?

Posted

技术标签:

【中文标题】在 json 模式中使用正则表达式来验证没有空格的字符串?【英文标题】:use regex in json schema to validate a string for no spaces? 【发布时间】:2017-06-14 12:14:45 【问题描述】:

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

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"
  ]

【问题讨论】:

【参考方案1】:

你可以试试这个:

^[^\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]);

【讨论】:

【参考方案2】:

这对我有用

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

【讨论】:

以上是关于在 json 模式中使用正则表达式来验证没有空格的字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 java 正则表达式验证字符串?

用于文本框验证的 HTML5 正则表达式模式:仅允许字母、空格和某些字符

允许字母、数字、小数、空格和下划线的正则表达式模式

忽略正则表达式中的空格并匹配

使用正则表达式验证信用卡号

正则表达式:匹配模式后跟一个空格但不匹配2个或更多空格或EOF