正则表达式 - 仅当输入不包含所有字母时才匹配

Regex - Match only if input does not contain all letters

我知道如果它包含所有字母则用于匹配的正则表达式是 ^[a-zA-Z]+$ 所以我认为这个正则表达式的否定将是答案并尝试了 ^(?!^[a-zA-Z])+$ 但它似乎不起作用.

为了提供一些背景信息,我正在使用 SurveyJS 表单创建器创建一个基本表单,该表单仅通过正则表达式接受自定义验证。某个表单输入应该允许用户输入任何内容,并且只有在用户只填写字母时才会抛出错误。

您可以使用

^(?![a-zA-Z]+$).*

负前瞻确保整行不仅包含 a-zA-Z 直到 $(行尾 - 这就是为什么它包含 inside 前瞻- 不在它之外)并且之后的 .* 将匹配任何通过否定前瞻的东西。

演示:https://regex101.com/r/QuC2SQ/1