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


当前回答

我有一个库,使用修剪。所以通过使用下面的代码来解决它。

String.prototype.trim = String.prototype.trim || function(){ return jQuery.trim(this); };

其他回答

下面是它的TypeScript格式:

var trim: (input: string) => string = String.prototype.trim
    ? ((input: string) : string => {
        return (input || "").trim();
    })
    : ((input: string) : string => {
        return (input || "").replace(/^\s+|\s+$/g,"");
    })

如果本机原型不可用,它将回退到正则表达式。

JavaScript修剪的通用函数是什么?

function trim(str) {
        return str.replace(/^\s+|\s+$/g,"");
}

虽然上面有一堆正确答案,但应该注意的是,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/

我有一个库,使用修剪。所以通过使用下面的代码来解决它。

String.prototype.trim = String.prototype.trim || function(){ return jQuery.trim(this); };

使用原生JavaScript方法:String.trimLeft(), String.trimRight()和String.trim()。

在IE9+和所有其他主要浏览器中都支持String.trim():

'  Hello  '.trim()  //-> 'Hello'

String.trimLeft()和String.trimRight()是非标准的,但除IE之外的所有主流浏览器都支持

'  Hello  '.trimLeft()   //-> 'Hello  '
'  Hello  '.trimRight()  //-> '  Hello'

IE的支持很容易与polyfill:

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