正则表达式不理解空白

时间:2013-08-07 14:09:02

标签: javascript regex whitespace

有代码:

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

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

但现在它也删除了空格。

我做错了什么?

3 个答案:

答案 0 :(得分:3)

你需要加倍反斜杠:

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

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

var regexp = /[^a-z\s-]/gi;

答案 1 :(得分:2)

您的斜杠需要以字符串文字进行转义。

一个简单的解决方案是使用regex literal

var regexp = /[^a-zA-Z\-\s]/g

答案 2 :(得分:1)

如果有人有兴趣,我会遇到 JavaScript Regex Generator tool

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