regex - Json 模式模式排除字符串中的数字和特殊字符

标签 regex json-schema-validator

我正在研究 JSON 模式模式以排除字符串中的数字和特殊字符,这是我现在拥有的:

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

这没有按预期工作,例如它不允许空格。

输入 JSON:

{
   "applicationName": "TestName",    
}

最佳答案

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

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

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

详情

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

关于regex - Json 模式模式排除字符串中的数字和特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48619661/

相关文章:

java - 如何为 JSONSchema 自定义错误消息?

json - 如何根据模式中的定义进行验证?

jsonschema - `true` 的 `schema` 值的定义行为在哪里?

用于删除非数字字符的 jQuery 正则表达式不起作用

javascript - 如何从 wiki 字符串中删除所有文件?

javascript - 使用转义正则表达式特殊字符进行测试时字符串相等性失败

java - 为什么空正则表达式和空捕获组正则表达式返回字符串长度加一结果

javascript - 将 JS 中 <code> 标签内的换行符替换为 <br>

JSON 架构 : number greater than (not greater than and equal)

java - 检查 JSON 模式中是否为 null