我如何从字符串的开始和结束删除所有空白?


当前回答

虽然上面有一堆正确答案,但应该注意的是,JavaScript中的String对象在ECMAScript 5中有一个原生的.trim()方法。因此,在理想情况下,任何尝试创建trim方法原型的尝试都应该首先检查它是否已经存在。

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

本机添加于: JavaScript 1.8.1 / ECMAScript

因此支持:

Firefox: 3.5 +

Safari: 5 +

ie浏览器:IE9+(仅限标准模式下)http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more.aspx

铬: 5+

工作:10 + 5。

ECMAScript 5支持表:http://kangax.github.com/es5-compat-table/

其他回答

如果你已经在使用jQuery框架,那么从jQuery修剪是很方便的。

$.trim('  your string   ');

我倾向于经常使用jQuery,所以用它修剪字符串对我来说是很自然的。但是否有可能出现反对jQuery的声音?:)

这里有一个非常简单的方法:

function removeSpaces(string){
return string.split(' ').join('');
}

我知道这个问题三年前就有人问过了。现在,String.trim()是在JavaScript中原生添加的。举个例子,你可以像下面这样直接修剪,

document.getElementById("id").value.trim();

不知道有什么虫子可以藏在这里,但我用这个:

var some_string_with_extra_spaces="   goes here    "
console.log(some_string_with_extra_spaces.match(/\S.*\S|\S/)[0])

或者这个,如果文本包含回车:

console.log(some_string_with_extra_spaces.match(/\S[\s\S]*\S|\S/)[0])

另一个尝试:

console.log(some_string_with_extra_spaces.match(/^\s*(.*?)\s*$/)[1])

虽然上面有一堆正确答案,但应该注意的是,JavaScript中的String对象在ECMAScript 5中有一个原生的.trim()方法。因此,在理想情况下,任何尝试创建trim方法原型的尝试都应该首先检查它是否已经存在。

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

本机添加于: JavaScript 1.8.1 / ECMAScript

因此支持:

Firefox: 3.5 +

Safari: 5 +

ie浏览器:IE9+(仅限标准模式下)http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more.aspx

铬: 5+

工作:10 + 5。

ECMAScript 5支持表:http://kangax.github.com/es5-compat-table/