繁体   English   中英

正则表达式不会理解空格

[英]Regex wont understand white space

有代码:

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

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

但是现在它也删除了空格。

我究竟做错了什么?

您需要将反斜杠加倍:

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

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

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

您的斜杠必须以字符串文字进行转义。

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

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

如果有人感兴趣,这是我遇到的JavaScript Regex Generator工具

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM