String.prototype.padStart()

これは実験段階の機能です。
この機能は複数のブラウザーで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザーの将来のバージョンで変更になる可能性があることに注意してください。

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"

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; //floor if number or convert non-number to 0;
        padString = String(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 の定義
ドラフト Initial definition in ECMAScript 2017.

ブラウザ実装状況

機能 Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 57 15 48 (48) 未サポート 44 10
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート ? 57 48.0 (48) ? ? 10

関連項目

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

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