删除Javascript中的所有多个空格并替换为单个空格

删除Javascript中的所有多个空格并替换为单个空格,javascript,jquery,replace,Javascript,Jquery,Replace,如何在Javascript中用一个空格自动替换多个空格的所有实例 我尝试过链接一些s.replace,但这似乎不是最佳选择 我也在使用jQuery,以防它是一个内置功能。您可以使用正则表达式替换: str = str.replace(/ +(?= )/g,''); 信用:上面的正则表达式取自,有很多正则表达式选项可以用来实现这一点。表现良好的一个例子是: str.replace( /\s\s+/g, ' ' ) 有关此问题的完整讨论,请参见此问题:您也可以不使用正则表达式进行替换 while

如何在Javascript中用一个空格自动替换多个空格的所有实例

我尝试过链接一些
s.replace
,但这似乎不是最佳选择


我也在使用jQuery,以防它是一个内置功能。

您可以使用正则表达式替换:

str = str.replace(/ +(?= )/g,'');

信用:上面的正则表达式取自

,有很多正则表达式选项可以用来实现这一点。表现良好的一个例子是:

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

有关此问题的完整讨论,请参见此问题:

您也可以不使用正则表达式进行替换

while(str.indexOf('  ')!=-1)str.replace('  ',' ');

你们都忘了量词n{X,}

这里是最好的解决方案

str = str.replace(/\s{2,}/g, ' ');

这也行得通。s=s。替换(/+/g,“”);非常正确:)--插入更多字符--
str=''+str.replace(/+(?=)/g',)
是一个更好的解决方案,如果你的str是
未定义的
NaN
:)我正在从txt文件中读取数据(通过AJAX),并且@InfinitiesLoop正则表达式工作得很好,但是Josiah的正则表达式对我来说不起作用。然而@redexp确实起作用了。也起作用了。。。问题是:哪个更有效?此版本或正则表达式版本。我更喜欢正则表达式,因为我们从来没有足够的练习。我不知道-如果你没有匹配项,这个方法更有效。如果你有很多比赛,那就是有人做错了。我希望,这里有一个例子可以强调区别。它清楚地表明,在所有情况下,正则表达式至少与循环版本一样快。不要说循环版本是坏的,只是指出一个人必须始终考虑产品的可维护性和进化。你也可以引用网站的各种正则表达式和完整的参考。在使用简单的+ + @一些非描述性的用户“代码> /\s+/g < /代码>时,使用括号量词有什么改进?也取代了单个空间。(不需要这样做)但是
/\s\s+/g
/\s{2,}/g
只替换多个空格。@Aalex Gabi:当然,你是对的,但是,撇开美学不谈,我怀疑这在绝大多数应用程序中都会很明显。可能在veery大文件中会有轻微的性能提升?在所有其他情况下,我会说,加号比括号更方便。@一些非描述性用户,我同意加号比括号更方便比括号方便。就性能而言,单空格比双空格慢三分之一: