如何删除字符串中重复的空格

How to remove duplicate white spaces in a string?

本文关键字:空格 字符串 何删除 删除      更新时间:2023-09-26

可能重复:
在JavaScript字符串中用单个空白替换多个空白

我使用了trim函数来去除句子开头和结尾的空白。如果一个句子中的单词之间有太多的空格,有什么方法可以修剪吗?

例如

"abc                  def. fds                            sdff."

尝试

"abc                  def. fds                            sdff."
 .replace(/'s+/g,' ')

"abc                  def. fds                            sdff."
     .split(/'s+/)
     .join(' ');

或使用此allTrim字符串扩展

String.prototype.allTrim = String.prototype.allTrim ||
     function(){
        return this.replace(/'s+/g,' ')
                   .replace(/^'s+|'s+$/,'');
     };
//usage:
alert(' too much whitespace     here   right?  '.allTrim());
   //=> "too much whitespace here right?"
var str = 'asdads   adasd    adsd';
str = str.replace(/'s+/g, ' ');

您可以使用以下Javascript将多个连续的空格修剪为只有一个空格:

var str = "abc def.  fds    sdff.";
str = str.replace(/'s+/g, " ");

如果你的意思不是多个连续空格,那么请在你的问题中澄清你的意思。

我想您要找的是JavaScript的string.replacement((方法。

如果您想删除所有空白,请使用以下命令:

"abc def. fds sdff.".replace(/'s/g, '');
Returns: "abcdef.fdssdff."

如果您只想删除两个空格,请使用:

"abc   def.  fds      sdff.".replace(/'s's/g, ' ');
Returns: "abc def. fds sdff."

如果你想在一段时间后留下空间,请使用:

"abc def. fds   sdff.".replace(/[^.]'s/g, '')
Returns: "abcdef. fdssdff."

请参阅下面的代码部分,该部分在javascript中使用了rejex来删除重复的空白。

function trim(value) {
   var temp = value;
   var obj = /^('s*)(['W'w]*)('b's*$)/;
   if (obj.test(temp)) { temp = temp.replace(obj, '$2'); }
   var obj = / +/g;
   temp = temp.replace(obj, " ");
   if (temp == " ") { temp = ""; }
   return temp;
}
value.replace("  ", " ");

这应该可以做到,它只是将2个空格替换为1个空格,直到你只得到1个空格。