padStart() メソッドは、指定した長さに文字列がなるように、現在の文字列を指定した文字列で (必要があれば繰り返し) 延長します。延長は、現在の文字列の最初 (左) から適用されます。

構文

str.padStart(targetLength [, padString])

パラメーター

targetLength
現在の文字列の延長後の長さ。パラメーターが現在の文字列の長さよりも短い場合、現在の文字列が返される。
padString Optional
現在の文字列を延長するための文字列。この文字列が長すぎる場合、切り捨てられて、左の部分が適用されます。 このパラメーターの既定値は、" " (U+0020) です。

戻り値

現在の文字列の先頭に延長が適用された String

'abc'.padStart(10);         // "       abc"
'abc'.padStart(10, "foo");  // "foofoofabc"
'abc'.padStart(6,"123465"); // "123abc"
'abc'.padStart(8, "0");     // "00000abc"
'abc'.padStart(1);          // "abc"

Polyfill

以下のコードを、String.prototype.padStart() が呼ばれる前に実行します。

// https://github.com/uxitten/polyfill/blob/master/string.polyfill.js
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
if (!String.prototype.padStart) {
    String.prototype.padStart = function padStart(targetLength,padString) {
        targetLength = targetLength>>0; //truncate if number or convert non-number to 0;
        padString = String((typeof padString !== 'undefined' ? padString : ' '));
        if (this.length > targetLength) {
            return String(this);
        }
        else {
            targetLength = targetLength-this.length;
            if (targetLength > padString.length) {
                padString += padString.repeat(targetLength/padString.length); //append to original to ensure we are longer than needed
            }
            return padString.slice(0,targetLength) + String(this);
        }
    };
}

仕様

仕様 状態 備考
ECMAScript Latest Draft (ECMA-262)
String.prototype.padStart の定義
ドラフト ECMAScript 2017 で初回定義。
ECMAScript 2017 (ECMA-262)
String.prototype.padStart の定義
標準  

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung InternetNode.js
基本対応Chrome 完全対応 57Edge 完全対応 15Firefox 完全対応 48IE 未対応 なしOpera 完全対応 44Safari 完全対応 10WebView Android 完全対応 57Chrome Android 完全対応 57Edge Mobile 完全対応 ありFirefox Android 完全対応 48Opera Android 完全対応 44Safari iOS 完全対応 10Samsung Internet Android 完全対応 7.0nodejs 完全対応 8.0.0
完全対応 8.0.0
完全対応 7.0.0
無効
無効 From version 7.0.0: this feature is behind the --harmony runtime flag.

凡例

完全対応  
完全対応
未対応  
未対応
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。

関連項目

ドキュメントのタグと貢献者

このページの貢献者: dskmori, maechabin, myakura, lv7777, YuichiNukiyama
最終更新者: dskmori,