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

JavaScript正则表达式:匹配不含全大写单词(允许缩写)的字符串

JavaScript正则匹配:禁止全大写单词,允许指定全大写缩写

需求明确

  • 规则:字符串中禁止出现非缩写的全大写单词,但允许指定的全大写缩写(如TV、BBQ、SQ.FT等)
  • 需匹配的字符串(符合规则):仅包含允许的缩写或无大写单词的字符串
  • 需排除的字符串(违反规则):包含非缩写全大写单词(如HELLO、SERIES、INVALID)的字符串

现有正则问题

原正则 ^(?!.*\b[A-Z]{2,}\b).*$ 通过负前瞻排除了所有含2个及以上大写字母的单词,无法区分允许的缩写和禁止的全大写单词,导致合法缩写也被错误排除。

解决方案

方案1:基于格式特征区分缩写(适合带点的缩写)

如果缩写的格式特征是包含点字符(如SQ.FT),而禁止的全大写单词是纯大写无点且长度≥2,可使用以下正则:

/^(?!.*\b(?![A-Z]*\.[A-Z])[A-Z]{2,}\b).*$/

逻辑解释

  • (?![A-Z]*\.[A-Z]):负前瞻,排除包含点字符的大写字符串(即缩写)
  • [A-Z]{2,}\b:匹配纯大写且长度≥2的单词
  • 整体效果:字符串中不存在任何纯大写无点且长度≥2的单词

方案2:基于指定缩写词表精准匹配(适合语义化缩写)

如果缩写是约定俗成的特定词汇(如TV、BBQ),无法通过格式区分,可将允许的缩写列入白名单,仅排除不在名单内的全大写单词:

/^(?!.*\b(?!TV|BBQ|SQ\.FT)[A-Z]{2,}\b).*$/

逻辑解释

  • (?!TV|BBQ|SQ\.FT):负前瞻,排除白名单中的合法缩写(注意转义特殊字符,如点.需写成\.)
  • [A-Z]{2,}\b:匹配纯大写且长度≥2的单词
  • 整体效果:字符串中不存在任何不在缩写白名单内的纯大写长度≥2的单词
  • 扩展:如需添加更多缩写,直接在|后补充即可

验证示例

  • 符合规则(匹配成功):
    • Hello TV
    • Come to my BBQ at my 1200 SQ.FT House.
  • 违反规则(匹配失败):
    • HELLO WORLD HOW ARE YOU?
    • I am INVALID.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:10:24