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

JS正则需求:移除括号内以数字开头的内容(含括号)

搞定JS正则:移除括号内数字开头的内容

我来帮你解决这个正则问题!你之前写的正则有个关键误区——用了^和$这两个锚点,它们是用来匹配整个字符串的开头和结尾的,但你实际要匹配的是括号内部以数字开头的内容,所以这俩符号完全用错地方啦,自然匹配不到目标内容。

正确的正则写法

我们需要精准匹配「左括号开头,紧接着是数字(允许前面带空格),然后是任意内容直到对应的右括号」的整个块,正则可以写成:

/\(\s*\d.*?\)/g

拆解正则逻辑

  • \(:转义匹配左括号(因为(在正则里是特殊元字符)
  • \s*:匹配0个或多个空白字符,兼容括号内开头可能带空格的情况(比如( 12:30am...))
  • \d:匹配任意数字,对应你要求的「括号内以数字开头」
  • .*?:非贪婪模式匹配任意字符,这样会在遇到第一个)就停止,避免误匹配多个括号块
  • \):转义匹配右括号
  • g:全局匹配标志,处理字符串里多个符合条件的括号块

修正后的代码

把你的代码替换成下面的版本,就能得到你想要的输出:

var str1 = "String 1 (12:30am - 5:00pm)";
var str2 = "String 2 (Parentheses) (3:00am - 3:10am)";

console.log( 
  str1.replace(/\(\s*\d.*?\)/g, '').trim() + "\n" + 
  str2.replace(/\(\s*\d.*?\)/g, '').trim() 
);

实际运行结果

执行后会输出:

String 1
String 2 (Parentheses)

完全符合你的预期!

内容的提问来源于stack exchange,提问作者gene b.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:37:08