Json模式模式,用于排除字符串中的数字和特殊字符

时间:2018-02-05 09:48:21

标签: regex json-schema-validator

我正在使用JSON架构模式来排除字符串中的数字和特殊字符,这就是我现在所拥有的:

"properties": {
  "applicationName": {
    "description": "TPG Application Name",
    "type": "string",
    "pattern": "[^0-9!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?\\s\\n]"
},

这不符合预期,例如它不允许空白。

输入JSON:

{
   "applicationName": "TestName",    
}

1 个答案:

答案 0 :(得分:3)

根据"[^0-9!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?\\s\\n]"模式判断,您希望匹配除数字,空格和特殊字符(标点符号和符号)之外的任何字符。这里,空格无法匹配,因为\s存在于否定字符类中,并且模式部分匹配,即它将验证包含除集合中列出的字符之外的字符的任何字符串。 ?a!会匹配a,例如

最简单的解决方案是匹配字母和空格,从字符串的开头到结尾:

"^[A-Za-z\\s]*$"

<强>详情

  • ^ - 字符串开头
  • [A-Za-z\\s]* - 0+个字母或空白
  • $ - 字符串结束。