删除字符串中的空格

时间:2014-02-11 07:04:57

标签: javascript string

我想删除字符串之前的空格,并将单词之间的所有空格替换为空格。如果字符串后面有空格,请删除空格中的所有空格。我怎么能这样做?

如:

"       My           name   is    Eddy       " -> "My name is Eddy "

"       My           name   is    Eddy" -> "My name is Eddy"

5 个答案:

答案 0 :(得分:2)

使用String.replace方法将多个空格(\s+)替换为单个空格' ',然后使用String.trim方法从左侧和右侧修剪剩余空格

"       My           name   is    Eddy       ".replace(/\s+/g,' ').trim()

trim适用于FF 3.5 +,IE 9 +,Safari 9 +。

答案 1 :(得分:2)

这是你想要的?

function removeSpace(string) {
    return string.replace(/\s*([^\s]+\s?)\s*/g, '$1');
}

这里的jsfiddle:http://jsfiddle.net/bobkhin/5EPC8/

答案 2 :(得分:1)

试试这个

var str=" My name is Eddy ";
alert(str.trim());

DEMO

尝试此代码

if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, ''); 
  }
}

答案 3 :(得分:1)

您可以在现代浏览器上使用String.prototype.trim()(请参阅compatibility):

" My name is Eddy ".trim()

将返回

"My name is Eddy"

在IE8上,您可以使用MDN page中建议的polyfill:

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^\s+|\s+$/gm, '');
  };
}

答案 4 :(得分:1)

有很多方法可以做到这一点,但我发现最容易理解的是三个单独的替换:

function cleanup( str ) {
    return str
        .replace( / +/g, ' ' )
        .replace( /^ /, '' )
        .replace( / $/, '' );
}

console.log(
    "'" +
    cleanup( "       My           name   is    Eddy       " ) +
    "'"
);

日志:

'My name is Eddy'

这与非常旧的浏览器以及新浏览器兼容。

编辑:所以你想要删除所有前导空格,但如果有尾随空格你想保留一个尾随空格,那是不是?那不是你描述问题的方式。

如果您查看我发布的cleanup函数,应该明白如何修复它以不删除尾随空格:

function cleanup( str ) {
    return str
        .replace( / +/g, ' ' )
        .replace( /^ /, '' );
}

console.log(
    "'" +
    cleanup( "       My           name   is    Eddy       " ) +
    "'"
);

日志:

'My name is Eddy '