OpenAPI 3.0.3配置正则禁止字符串含空格和连字符的方法
问题根源
你当前配置的pattern: '^\s-$'正则规则完全不符合需求,该规则的实际含义是「仅允许输入由1个空白字符+1个连字符组成的长度固定为2的字符串」,因此所有不符合这个格式的输入都会触发校验失败,这就是你输入合法纯字母数字值也报错的原因。
正确配置方案
根据你「仅允许传入字母数字值,禁止空格、连字符及其他特殊字符」的需求,推荐使用正向匹配正则,规则更明确,避免漏判其他特殊字符:
pattern: '^[a-zA-Z0-9]+$'
该规则的含义是:从字符串开头到结尾,只能包含大小写英文字母、阿拉伯数字,且长度至少为1,刚好匹配你已经配置的minLength: 1要求。
如果你的需求后续拓展为允许除了空格、连字符之外的其他字符,也可以使用反向排除规则:
pattern: '^[^-\s]+$'
修改后完整字段配置示例
account: type: 'string' description: Identifier for account making the purchase example: '1' minLength: 1 pattern: '^[a-zA-Z0-9]+$'
校验效果说明
- 合法输入(校验通过):
ab、123、a1B9等纯字母数字组合 - 非法输入(校验失败):
a b(带空格)、a-b(带连字符)、a@b(带其他特殊字符)
内容的提问来源于stack exchange,提问作者PacificNW_Lover
相关产品推荐
相关产品推荐

