1

有代码:

var regexp = new RegExp("[^a-zA-Z\-\s]", "g");
val = val.replace(regexp,'');

它也需要留下字母(a-zA-Z)、 - (\-)和空格(\s)并删除所有其他符号。

但现在它也删除了空格。

我究竟做错了什么?

4

3 回答 3

3

您需要将反斜杠加倍:

var regexp = new RegExp("[^a-zA-Z\\-\\s]", "g");

或者,更好的是,使用正则表达式文字(并简化它):

var regexp = /[^a-z\s-]/gi;
于 2013-08-07T14:10:44.000 回答
2

您的斜杠需要在字符串文字中转义。

一个简单的解决方案是使用正则表达式文字

var regexp = /[^a-zA-Z\-\s]/g
于 2013-08-07T14:10:45.083 回答
1

如果有人感兴趣,这是我遇到的一个JavaScript 正则表达式生成器工具。

对于像我这样的正则表达式爱好者来说非常有用。

于 2013-08-07T14:16:27.053 回答