JavaScript使用正则表达式替换所有多行空间和其他空白字符

时间:2011-10-21 00:57:42

标签: javascript regex

我有一个textarea,我正在使用jQuery删除文本区域模糊时单个空格的所有制表符,换行符,多个空格等。

但是,当我使用以下内容时:

str.replace(/\s/g, ' ')

...它删除所有标签和换行符,但不删除多个空格。

当我尝试:

str.replace(/[ \s], ' ')

......同样的事情发生了。

当我尝试:

str.replace(/[(?= +)\s], ' ')

......它不会逃脱我的括号等。

任何人都知道我正在尝试做的正确语法吗?

感谢。

2 个答案:

答案 0 :(得分:3)

str.replace(/\s+/g, ' ');

http://jsfiddle.net/KrqDH/

答案 1 :(得分:1)

您可以考虑查看Mozilla's Regular Expression Documentation。这几乎涵盖了您想要了解的有关JavaScript正则表达式的任何内容。

对于问题的第一部分,您需要的常规表达式为/\s+/,其中+运算符将匹配表达式中前一个或多个语句(空格字符)。

str.replace(/\s+/g, ' ')

在第二部分:

str.replace(/[(?= +)\s], ' ')

这会产生语法错误。你的意思是/[(?= +)\s]/