アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

('ω') < イザユケエンジニャー

javascriptでゼロパディング

ググる
ゼロパディングしたい文字列の左側にゼロくっつけておいて右側から切り出す」
って方法しか出てこないんだけどマジか…そういう標準関数とか存在しないのか…

しかもその方法そのまんまだと、もし桁が溢れる場合に切り捨てられてしまうので、
「規定の桁数以下なら左側をゼロで埋め、そうでなければそのまま返す」というのを関数化しました。

/* ゼロパディングするやつ:strは文字列、cntは桁数 */
function zeropadding(str, cnt){
    // 強制的に文字列化
    str = "" + str;
    // 文字列が規定桁数未満なら、足りない桁数分のゼロを左側に追加して返す
    if (str.length < cnt){
        return "0".repeat(cnt - str.length) + str;
    }
    // 文字列が規定桁数以上なら、そのまま返す
    else{
        return str;
    }
}

意地でも1行で済ませたいマンはこちら。
参考演算子とか駆使してるだけでやってることは同じ。

function zeropadding(str, cnt){
    return "0".repeat((("" + str).length < cnt) ? (cnt - ("" + str).length) : 0) + str;
}

参考
JavaScriptでゼロ埋め処理
String.prototype.repeat() - JavaScript | MDN