自 IE9 + 以来的所有浏览器都有trim()
。
对于那些不支持trim()
浏览器,您可以使用MDN 中的此 polyfill:
if (!String.prototype.trim) {
(function() {
// Make sure we trim BOM and NBSP
var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
String.prototype.trim = function() {
return this.replace(rtrim, '');
};
})();
}
看到这个:
String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g, '');};
String.prototype.ltrim=function(){return this.replace(/^\s+/,'');};
String.prototype.rtrim=function(){return this.replace(/\s+$/,'');};
String.prototype.fulltrim=function(){return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ');};
如果您已经在使用该框架,那么jQuery的修剪很方便。
$.trim(' your string ');
我经常使用 jQuery,因此使用它修剪字符串对我来说很自然。但是有可能在那里对 jQuery 产生强烈反对? :)
虽然上面有一堆正确的答案,但应该注意的是,从ECMAScript 5 开始 ,JavaScript 中的String
对象具有原生的.trim()
方法。因此,理想情况下,任何对 trim 方法进行原型设计的尝试都应该检查它是否已经存在。
if(!String.prototype.trim){
String.prototype.trim = function(){
return this.replace(/^\s+|\s+$/g,'');
};
}
本机添加: JavaScript 1.8.1 / ECMAScript 5
因此支持:
Firefox: 3.5+
Safari: 5+
Internet Explorer: IE9 + (仅在标准模式下!) http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more 的. aspx
Chrome: 5+
歌剧: 10.5+
ECMAScript 5 支持表: http : //kangax.github.com/es5-compat-table/