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

JavaScript正则:移除非字母数字但保留空格与方括号

解决正则保留特定字符的问题

嘿,我懂你遇到的坑了!用\W的时候确实会把空格和方括号一起删掉,因为\W的本质是匹配所有非字母、数字和下划线的字符,而空格、[、]刚好都属于这个“非允许”的范围里。

要实现你的需求——只移除非字母数字,但保留空格和方括号——我们可以用自定义的否定字符集来精准控制要排除的内容,具体写法如下:

var string = 'Size? [Small] Color? [Blue]';
string = string.replace(/[^a-zA-Z0-9\s\[\]]/g, '');
console.log(string); // 输出: 'Size [Small] Color [Blue]'

正则规则拆解:

  • [^...]:这是否定字符集,意思是“匹配任何不在这个集合里的字符”,我们把它替换成空字符串,就相当于保留集合内的所有字符
  • a-zA-Z0-9:覆盖所有英文字母和阿拉伯数字
  • \s:匹配所有空白字符(包括普通空格、制表符等,如果只想保留普通空格,可以直接写一个空格 代替\s)
  • \[\]:匹配方括号,因为[和]在正则里是用来定义字符集的特殊符号,所以需要用反斜杠\转义才能匹配它们本身

如果你的场景需要支持Unicode字母(比如中文、日文等),可以用更通用的写法,记得加上u标志开启Unicode模式:

var string = '尺寸? [大号] 颜色? [蓝色]';
string = string.replace(/[^\p{L}\p{N}\s\[\]]/gu, '');
console.log(string); // 输出: '尺寸 [大号] 颜色 [蓝色]'

这样就能完美达到你想要的效果啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:06:03