如何在JSON Schema的pattern中匹配字面量星号以校验首字符为星号的两位字符串
你之前写的正则^[*A-Z]{2}$的逻辑是「两个字符,每个字符都可以是星号或大写字母」,所以自然会匹配AA这类首字符不是星号的内容。
正确的规则写法如下:
"code": { "type": "string", "pattern": "^\\*[A-Z]$" }
规则说明:
- 第一位强制匹配星号:正则里的
\\*对应字面量星号,JSON字符串中反斜杠需要额外转义,所以写两个反斜杠 - 第二位可按需调整允许的字符范围:上面示例仅允许大写英文字母,如果你需要允许小写、数字或者其他符号,修改
[A-Z]部分即可,比如允许大小写字母就改成[A-Za-z],如果允许任意字符则替换为. - 首尾的
^和$保证字符串总长度正好为2位,不会出现更长的内容通过校验
该正则规则完全兼容ajv校验器,可直接使用。
内容的提问来源于stack exchange,提问作者Bruce。
相关产品推荐
相关产品推荐

