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

JS使用正则/\[[^\][]*]/g删除[]包裹内容失效如何修复?

问题原因

你当前使用的正则规则存在适配局限:

  1. 排除型字符组[^\][]将[也加入了排除匹配范围,如果你的实际使用场景存在方括号嵌套(例如[a[b]c]test),正则只会匹配到第一个[到第一个内嵌[之间的内容,无法匹配完整的方括号包裹段,就会出现删除不全的问题
  2. 部分老旧JS运行环境对未转义的结尾方括号解析逻辑存在差异,也可能导致匹配失效

修复方案

无嵌套场景(绝大多数普通场景适用)

直接使用如下正则即可实现全局删除:

let string = '[abcd]word[efg]';
// 规则说明:匹配[开头,后续所有非]字符,直到遇到]为止,全局替换为空
string = string.replace(/\[[^\]]*\]/g, '');
console.log(string); // 输出:word

嵌套方括号场景

如果内容存在多层方括号嵌套,可通过多次替换实现完全删除:

let string = '[a[b[c]d]e]test[f]';
while (/\[[^\]]*\]/.test(string)) {
  string = string.replace(/\[[^\]]*\]/g, '');
}
console.log(string); // 输出:test

如果被方括号包裹的内容包含换行符,给正则添加s修饰符即可兼容:/\[[^\]]*\]/gs

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:15:03