Javascript – 如何删除单词之间的所有额外间距

如何删除字符串文字中单词之间的所有额外空格?

"some value" 

应该成为

 "some value" 

也,

 " This should become something else too . " 

 "This should become something else too ." 

不要担心搬家. 。 就像上面一样好。 我知道我可以使用$.trim(str)来实现尾随/结束空间的移除。 但是,我不确定如何在单词技巧之间做1个空格。

 var string = " This should become something else too . "; string = string.replace(/\s+/g, " "); 

此代码用一个空格替换一组连续的空白字符( \s+ )。 请注意,空格字符还包括制表符和换行符。 如果您只想替换空格,请用空格替换\s

如果您还想在开头和结尾删除空格,请包括:

 string = string.replace(/^\s+|\s+$/g, ""); 

此行将删除开头( ^ )和结尾( $ )处的所有空格字符。 RegExp末尾的g表示:全局,即匹配并替换所有出现的。

 var str = " This should become something else too . "; str = str.replace(/ +(?= )/g,''); 

这是一个工作小提琴 。

 var str = " This should become something else too . " $.trim(str).replace(/\s(?=\s)/g,'') 

这使用前瞻用单个空格替换多个空格。

jsFiddle示例

 " This should become something else too . ".replace(/[\s\t]+/g,' '); 

另一个(也许更容易理解)regexp替换将完成这个诀窍:

 var input = /* whatever */; input = input.replace(/ +/g, ' '); 

正则表达式匹配一个或多个空格,因此.replace()调用用单个空格替换每个单独或重复的空格。

 var str = 'some value'; str.replace(/\s\s+/g, ' ');