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

P.B*_*key 34 javascript jquery

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

"some    value"
Run Code Online (Sandbox Code Playgroud)

应该成为

"some value"
Run Code Online (Sandbox Code Playgroud)

也,

"    This    should  become   something          else   too . "
Run Code Online (Sandbox Code Playgroud)

"This should become something else too ."
Run Code Online (Sandbox Code Playgroud)

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

Rob*_*b W 62

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

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

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

string = string.replace(/^\s+|\s+$/g, "");
Run Code Online (Sandbox Code Playgroud)

此行删除begin(^)和end($)处的所有空格字符.将g在正则表达式的结束意味着:全球性的,即匹配和替换所有出现.

  • var newString = string.replace(/ ^ \ s + | \ s + $ / g,“”).replace(/ \ s + / g,“”); (2认同)

Jam*_*ill 13

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

这是一个工作小提琴.

  • 关于正则表达式的一点解释会很好! (3认同)

V-S*_*SHY 5

如果我们想避免使用正则表达式替换函数,

我们可以通过以下方式获得相同的结果

str.split(' ').filter(s => s).join(' ')
// var str = "    This    should  become   something          else   too . ";
// result is "This should become something else too ."
Run Code Online (Sandbox Code Playgroud)

首先,用空格分割原始字符串,然后我们将在数组中包含空字符串和单词。其次,过滤以仅保留单词,然后用空格连接所有单词。