You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenAPI 3.0空字符串校验正则拦截带换行符有效字符串问题排查

问题原因

这个问题的核心是你使用的正则规则兼容问题:

  • OpenAPI 3.0 要求pattern字段遵循ECMA-262正则标准,但不同语言的校验库实现存在细微差异,绝大多数实现中.元字符默认不会匹配换行符\n、回车符等行终止字符。你配置的正则^(?!\s*$).+需要匹配整个输入字符串,当输入末尾带\n时,.+只能匹配到换行前的内容,无法覆盖完整的字符串,最终触发校验失败。
  • 你当前配置的minLength: 1已经可以拦截纯空字符串"",新增的pattern规则是为了拦截全空白字符(比如纯空格、制表符组成的字符串),但因为没有兼容换行符的情况,才出现了合法内容被误拦截的问题。
修复方案
  • 如果你允许接口传入的字符串包含换行符,仅需要禁止全空白内容,可以把正则修改为:pattern: ^(?!\s*$)[\s\S]+,[\s\S]可以匹配所有字符包括换行符,不会误杀带换行的合法内容。
  • 如果你不允许字符串中存在换行符,可以直接明确限制不允许行终止符:pattern: ^(?!\s*$)[^\n\r]+,同时满足禁止全空白和禁止换行的需求。

内容的提问来源于stack exchange,提问作者ernest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:54:02