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

JavaScript正则如何正确匹配大写单词及带单个特殊字符的单词

正则调整方案

你可以使用如下正则实现需求:

const targetStr = 'BMB-001 RING/MESH T-Bar Track T-BAR W/'
// 适配需求的正则表达式
const reg = /(?<=^|[\s/])[A-Z]{2,}(?:-[A-Z]+)*|W\/(?=[\s]|$)/g
// 匹配结果
const res = targetStr.match(reg)
console.log(res) // 输出:['RING', 'MESH', 'T-BAR', 'W/']

正则规则说明

  • (?<=^|[\s/]):正向零宽回顾断言,限定匹配内容的前缀只能是字符串开头、空格或斜杠/,直接排除了前缀的BMB这类后跟-的无效内容
  • [A-Z]{2,}:匹配2个及以上连续的大写英文字母
  • (?:-[A-Z]+)*:非捕获组,支持匹配连字符加连续大写字母的组合,可重复0次或多次,适配T-BAR这类带连字符的全大写内容
  • |:或逻辑,单独匹配特殊规则的W/
  • W\/(?=[\s]|$):精确匹配W/,同时通过正向零宽前瞻断言限定其后只能是空格或字符串结尾,避免误匹配

原正则存在的问题

  1. 没有对匹配内容的前缀做限制,导致错误匹配到前缀的BMB
  2. 字符匹配规则不严谨,没有限定匹配内容的字符必须全为大写+合法连字符,导致出现T-B这类截断的错误匹配结果
  3. 没有排除包含小写字母的内容对应的无效匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:18:03