Json 用于排除字符串中的数字和特殊字符的架构模式
Json schema pattern to exclude numbers and special characters in string
我正在研究 JSON 模式模式以排除字符串中的数字和特殊字符,这是我现在拥有的:
"properties": {
"applicationName": {
"description": "TPG Application Name",
"type": "string",
"pattern": "[^0-9!@#$%^&*()_+\-=\[\]{};':\"\\|,.<>\/?\s\n]"
},
这没有按预期工作,例如它不允许空格。
输入JSON:
{
"applicationName": "TestName",
}
根据 "[^0-9!@#$%^&*()_+\-=\[\]{};':\"\\|,.<>\/?\s\n]"
模式判断,您想匹配除数字、空格和特殊字符(标点符号和符号)之外的任何字符。此处,无法匹配空格,因为 \s
出现在否定字符 class 中,并且该模式是部分匹配的,即它将验证包含字符集中列出的字符以外的任何字符串。 ?a!
将匹配,因为有 a
,例如
最简单的解决方案是匹配字母和空格,从字符串的开始到结束:
"^[A-Za-z\s]*$"
详情
^
- 字符串开头
[A-Za-z\s]*
- 0+ 个字母或空格
$
- 字符串结尾。
我正在研究 JSON 模式模式以排除字符串中的数字和特殊字符,这是我现在拥有的:
"properties": {
"applicationName": {
"description": "TPG Application Name",
"type": "string",
"pattern": "[^0-9!@#$%^&*()_+\-=\[\]{};':\"\\|,.<>\/?\s\n]"
},
这没有按预期工作,例如它不允许空格。
输入JSON:
{
"applicationName": "TestName",
}
根据 "[^0-9!@#$%^&*()_+\-=\[\]{};':\"\\|,.<>\/?\s\n]"
模式判断,您想匹配除数字、空格和特殊字符(标点符号和符号)之外的任何字符。此处,无法匹配空格,因为 \s
出现在否定字符 class 中,并且该模式是部分匹配的,即它将验证包含字符集中列出的字符以外的任何字符串。 ?a!
将匹配,因为有 a
,例如
最简单的解决方案是匹配字母和空格,从字符串的开始到结束:
"^[A-Za-z\s]*$"
详情
^
- 字符串开头[A-Za-z\s]*
- 0+ 个字母或空格$
- 字符串结尾。