みかづきブログ その3

3ヶ月つづけてみました。

JavaScriptでのゼロパディングのイケてる書き方

developer.mozilla.org

昔は、

let mm = ('0' + m).slice(-2);

のような感じでゼロパディングしていたのですが、

let mm = String(m).padStart(2, 0);

と、IEを無視すれば 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);
        }
    };
}

polyfillを書いておけば、より安心です。