桁をゼロで埋めたい(ゼロパディング) :: PHP, JavaScript, MySQL
桁をゼロで埋めたいことってありますよね。
『サイボーグ009』の「009」をどうやって表現しようか、とかそんなときに。
ということで、ゼロパディングの方法を書いてみたいと思います。
PHP でゼロパディング
PHP では sprintf関数を使うのが一般的です。
<?php $num = 9; $zerozeronine = sprintf('%03d', $num); var_dump($zerozeronine); // string(3) "009"
sprintf のフォーマット部分がちょっと解りにくいかもしれないですが、
’’ で括って、
%03 で桁を3桁に指定して
d で十進数で表現しているだけのことです。
もう少し詳しく知りたければ、sprintf の例7を見るのがいいかもですね。
JavaScript でゼロパディング
JavaScript には PHP でいう sprintf関数のようなものがありません。
変わりに使えるのは、slice関数です。
String.prototype.slice - JavaScript | MDN
var num = 9; var zerozeronine = ("00000" + num).slice(-3); console.debug(zerozeronine); // 009
slice関数の負の引数が解りにくいかも知れませんが、
文字列 ”00000” と 数値 9 が入った変数 num を
- で繋げたあとで、
「後ろから3文字分」取り出した、と解釈してください。