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
Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet Node.js
trimStart Chrome Full support 66
Full support 66
Full support 4
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 No Opera Full support 53
Full support 53
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: trimLeft
Safari Full support 12 WebView Android Full support 66
Full support 66
Full support ≤37
Alternate Name
Alternate Name Uses the non-standard name: trimLeft
Chrome Android Full support 66
Full support 66
Full support 18
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 47
Full support 47
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: trimLeft
Safari iOS Full support 12 Samsung Internet Android Full support 9.0
Full support 9.0
Full support 1.0
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);
*/

参见