正则表达式删除字母数字但在Javascript中保留括号和空格

时间:2018-05-10 20:03:21

标签: javascript regex

我有一个看起来像这样的字符串:

var string = 'Size? [Small] Color? [Blue]'

我想删除所有non alphanumeric,但请保留spaces[]

结束字符串是

'Size [Small] Color [Blue]'

我试过\ W喜欢这个:

string = string.replace(/\W/g, '')

但是这摆脱了空格和[]

我不确定如何在正则表达式中排除和包含项目?

2 个答案:

答案 0 :(得分:2)

我会将您想要的字符列入白名单而不是黑名单:

string.replace(/[^\w[\] ]/g, '');

答案 1 :(得分:2)

\W匹配所有非单词字符。

要匹配除空格[]以外的所有非字母数字,您应使用否定字符类:

/[^a-zA-Z0-9 \[\]]/

RegEx Demo

<强>代码:

&#13;
&#13;
let string = 'Size? [Small] Color? [Blue]';

string = string.replace(/[^a-zA-Z0-9 \[\]]+/g, '') 

console.log( string );
//=> Size [Small] Color [Blue]
&#13;
&#13;
&#13;