jquery JavaScript -如何删除单词之间的所有额外空格

mpgws1up  于 2023-06-22  发布在  jQuery
关注(0)|答案(8)|浏览(144)

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

"some    value"

应该成为

"some value"

还有

"    This    should  become   something          else   too . "

变成

"This should become something else too ."

不要担心移动.。就像上面一样好。我知道我可以使用$.trim(str)来实现结尾/结尾空格的删除。但是,我不知道如何做1之间的空间字的把戏。

xhv8bpkk

xhv8bpkk1#

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

这段代码将一组连续的空白字符(\s+)替换为一个空白。请注意,空白字符还包括制表符和换行符。如果只想替换空格,请将\s替换为空格。
如果您还想删除开头和结尾的空格,请包括:

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

这一行删除了开头(^)和结尾($)处的所有空白字符。RegExp末尾的g表示:全局的,即匹配和替换所有的事件。

q7solyqu

q7solyqu2#

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

这里是a working fiddle

q35jwt9p

q35jwt9p3#

如果我们想避免使用regex的replace函数,
我们可以通过以下方法达到同样的效果

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

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

kyvafyod

kyvafyod4#

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

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

kyks70gy

kyks70gy5#

jsFiddle Example

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

r1zk6ea16#

另一个(也许更容易理解)regexp替代品可以做到这一点:

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

regexp匹配一个或多个空格,因此.replace()调用将每个单个或重复的空格替换为单个空格。

r7s23pms

r7s23pms7#

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

ohfgkhjo8#

对于我的例子,我必须合并其他答案,并为多行字符串添加/m modifier,结果是:

string.replace(/^[ \s\t]*| +(?= )/gm, '')
let string = `
    I  want
    all   the extra
    spaces removed.
^                    
`;

console.log(string.replace(/^[ \s\t]*| +(?= )/gm, ''))

相关问题