String.prototype.trimLeft()

trimStart() 方法从字符串的开头删除空格。trimLeft()是此方法的别名。

The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.

语法

str.trimStart();
str.trimLeft();

返回值

一个新字符串,表示从其开头(左端)除去空格的调用字符串。

描述

trimStart() / trimLeft()方法移除原字符串左端的连续空白符并返回,trimStart() / trimLeft()方法并不会直接修改原字符串本身。

别名

为了与 String.prototype.padStart 等函数保持一致,标准方法名称为trimStart。 但是,出于Web兼容性原因,trimLeft仍然是trimStart的别名。在某些引擎中,这意味着:

String.prototype.trimLeft.name === "trimStart";

示例

使用trimStart()

下面的例子输出了小写的字符串"foo  ":

var str = "   foo  ";

console.log(str.length); // 8

str = str.trimStart() // 等同于str = str.trimLeft();
console.log(str.length); // 5
console.log(str);        // 'foo  '

Specifications

Specification Status Comment
String.prototype.{trimStart,trimEnd}proposal Stage 4 Expected to be part of ES2019

浏览器兼容

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
trimStartChrome Full support 66
Full support 66
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: trimLeft
Edge Full support 12
Alternate Name
Full support 12
Alternate Name
Alternate Name Uses the non-standard name: trimLeft
Firefox Full support 61
Full support 61
Full support 3.5
Alternate Name
Alternate Name Uses the non-standard name: trimLeft
IE No support NoOpera Full support 53Safari Full support 12WebView Android Full support 66
Full support 66
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: trimLeft
Chrome Android Full support 66
Full support 66
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: trimLeft
Firefox Android Full support 61
Full support 61
Full support 4
Alternate Name
Alternate Name Uses the non-standard name: trimLeft
Opera Android Full support 47Safari iOS Full support 12Samsung Internet Android Full support Yes
Full support Yes
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: trimLeft
nodejs Full support 10.0.0
Full support 10.0.0
Full support 0.12
Alternate Name
Alternate Name Uses the non-standard name: trimLeft

Legend

Full support  
Full support
No support  
No support
Uses a non-standard name.
Uses a non-standard name.

Polyfill

//https://github.com/FabioVergani/js-Polyfill_String-trimStart

(function(w){
    var String=w.String, Proto=String.prototype;

    (function(o,p){
        if(p in o?o[p]?false:true:true){
            var r=/^\s+/;
            o[p]=o.trimLeft||function(){
                return this.replace(r,'')
            }
        }
    })(Proto,'trimStart');

})(window); 


/*
ES6:
(w=>{
    const String=w.String, Proto=String.prototype;

    ((o,p)=>{
        if(p in o?o[p]?false:true:true){
            const r=/^\s+/;
            o[p]=o.trimLeft||function(){
                return this.replace(r,'')
            }
        }
    })(Proto,'trimStart');

})(window);
*/

参见