前の記事を書いている途中で気づいたのですが、Node.jsの util.format
はC言語の printf
にある %09d
のようなフォーマットを使えません。console.log
は util.format
を使っているので、必然的に console.log
もです。
ただ使えないのも困るし、しかもnpmでざっと調べてもめぼしいライブラリが見つからないので、とりあえず前の記事で使った手法をさらしておきます。
すみません、嘘です。普通にnpmから入れられるライブラリありました。
というわけで下のものはただのJSのテクニックになります。(大したものじゃない…。
/**
* 数値を0で敷き詰める
* @param {Number} n 数値
* @param {Number} length 文字列の長さ
* @return {String} n の桁数が length に満たない分を 0 で敷き詰めた文字列
*/
function zeroPadding(n,length){
n = '' + n; //string cast
return length + 1 - n.length > 0 ? Array(length + 1 - n.length).join('0') + n : n;
}
間に合わせに作ったのでかなり手抜きかつ n
が小数だったときがアレなのですが大体の場合はこれでどうにかなるのではないでしょうか?
どなたかちょうどいいライブラリ見つけたら教えてください。
↑ @Layzie@Github 様に sprintf-js というライブラリを紹介していただきました。
フォーマットの引数にオブジェクトを渡して、プロパティ名でフォーマット上からアクセスできたり等、ちょっとしたテンプレートエンジン並の機能を持っているみたいです。
きちんとした sprintf
が必要なときには使ってみてください。