如何删除字符串文字中单词之间的所有额外空格?
"some value"
应该成为
"some value"
另外,
" This should become something else too . "
变为
"This should become something else too ."
不要担心移动.
。就像上面的情况一样好。我知道我可以使用$.trim(str)
来实现尾随/结束空间的移除。但是,我不确定如何在单词技巧之间做一个空格。
答案 0 :(得分:53)
var string = " This should become something else too . ";
string = string.replace(/\s+/g, " ");
此代码用一个空格替换一组连续的空白字符(\s+
)。请注意,空格字符还包括制表符和换行符。如果您只想替换空格,请用空格替换\s
。
如果您还想在开头和结尾删除空格,请包含:
string = string.replace(/^\s+|\s+$/g, "");
此行删除开头(^
)和结束($
)处的所有空白字符。 RegExp末尾的g
表示:全局,即匹配并替换所有出现的事件。
答案 1 :(得分:12)
var str = " This should become something else too . ";
str = str.replace(/ +(?= )/g,'');
答案 2 :(得分:4)
var str = " This should become something else too . "
$.trim(str).replace(/\s(?=\s)/g,'')
这使用lookahead用一个空格替换多个空格。
答案 3 :(得分:3)
" This should become something else too . ".replace(/[\s\t]+/g,' ');
答案 4 :(得分:0)
另一个(也许更容易理解)正则表达式替换,可以解决这个问题:
var input = /* whatever */;
input = input.replace(/ +/g, ' ');
正则表达式匹配一个或多个空格,因此.replace()
调用用一个空格替换每个单独或重复的空格。
答案 5 :(得分:0)
var str = 'some value';
str.replace(/\s\s+/g, ' ');
答案 6 :(得分:0)
如果我们想避免使用正则表达式替换功能,
我们可以通过
获得相同的结果str.split(' ').filter(s => s).join(' ')
// var str = " This should become something else too . ";
// result is "This should become something else too ."
首先,用空格分割原始字符串,然后在数组中包含空字符串和单词。其次,过滤以仅保留单词,然后将所有单词与空格连接起来。