3

我试图去除除逗号、破折号和单引号之外的所有非字母数字字符。我知道如何从字符串中删除所有非单词,即

myString.replace(/\W/g,'');

, -但是除了and之外,我该怎么做'呢?我试过

myString.replace(/\W+[^,]/g,'');

因为我知道如何使用 ^运算符否定,只是在组合正则表达式时遇到了麻烦。

任何帮助表示赞赏。谢谢。

4

2 回答 2

10

\w是 的倒数\W,所以你可以使用/[^\w,'-]/

编辑:如果也不需要下划线:/[^\w,'-]|_/

于 2013-02-07T22:21:05.770 回答
9

以下字符类匹配属于字母、数字、逗号、破折号和单引号类的单个字符。

[-,'A-Za-z0-9]

以下匹配不属于其中之一的字符:

[^-,'A-Za-z0-9]

所以

var stripped = myString.replace(/[^-,'A-Za-z0-9]+/g, '');
于 2013-02-07T22:23:26.937 回答