首页 文章

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

提问于
浏览
12

可能重复:在JavaScript中从字符串中删除空格

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

例如

"abc                  def. fds                            sdff."

6 回答

  • 26

    尝试

    "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
    var str = 'asdads   adasd    adsd';
    str = str.replace(/\s+/g, ' ');
    
  • 25

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

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

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

  • 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."
    
  • 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;
    }
    
  • 3
    value.replace("  ", " ");
    

    这应该是诀窍,它只是将2个空格替换为1,直到你只获得1个空格 .

相关问题