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

时间:2011-10-14 07:21:55

标签: javascript regex

  

可能重复:
  Removing whitespace from string in JavaScript

我使用了trim函数来删除句子开头和结尾的空格。如果句子中的单词之间有很多空格,是否有任何方法可以修剪?

例如

"abc                  def. fds                            sdff."

6 个答案:

答案 0 :(得分:32)

"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?"

答案 1 :(得分:25)

var str = 'asdads   adasd    adsd';
str = str.replace(/\s+/g, ' ');

答案 2 :(得分:3)

您可以使用此Javascript将多个连续空格修剪为仅一个空格:

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

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

答案 3 :(得分:3)

我认为您正在寻找的是JavaScript的string.replace()方法。

如果您想删除所有空格,请使用:

"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."

答案 4 :(得分:1)

请参阅以下代码部分,该部分在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;
}

答案 5 :(得分:1)

value.replace("  ", " ");

这应该可以解决问题,只需将2个空格替换为1,直到只有1个空格。