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

JavaScript技术问题:如何仅保留或移除字符串中的[]

问题解决:处理字符串中的方括号[]

给定初始代码:

let num = '(((185 + 223.85){} * 15)[] - 543)/2';

你之前用num.replace(/\[^()^{}\]/g,'')能得到(((){})),但尝试num.replace(/\[ ^\[\] \]/g,'')时毫无效果,下面直接给出仅移除或仅保留[]的正确实现:


仅移除字符串中的[]

直接匹配所有[和],替换为空即可,用正则字符集精准匹配这两个符号:

num = num.replace(/[\[\]]/g, '');

执行后输出:(((185 + 223.85){} * 15) - 543)/2

仅保留字符串中的[]

匹配所有不是[和]的字符并替换为空,利用正则字符集的取反规则(^放在字符集开头表示“非集合内字符”):

num = num.replace(/[^\[\]]/g, '');

执行后输出:[]


为什么你之前的正则无效?

你写的/\[ ^\[\] \]/g存在三个关键问题:

  1. 正则里的空格会被当作需要匹配的空格,但原字符串中[]周围没有空格,自然匹配不到
  2. 取反符号^位置错误,只有放在字符集[]开头才表示取反逻辑,你把它放在外面完全偏离了目标
  3. 结构混乱,多余的转义和空格导致正则规则彻底不符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 22:05:03