次のように、文字数を合わせる方法について考えます。
001 002 ... 999
そのためには先頭にゼロを文字として追加し、String.slice()で文字数を合わせます。たとえば3桁にするならば、
( '000' + num ).slice( -3 );
のようにします。このときnumが1ならば、「001」が返されます。
異なる桁数も考えると、
var num = 1; ( '00' + num ).slice( -2 ); // '01' を返す ( '000' + num ).slice( -3 ); // '001' を返す
のようにします。ただしこの方法では、想定する桁数を超えたときには
var num = 123;
( '00' + num ).slice( -2 ); // '23' を返す
のように上位の桁が失われます。
ところで、先頭に追加するゼロの数を1つ減らして、
( '00' + num ).slice( -3 );
としても通常は問題ありませんが、空文字を指定されると桁数が合わなくなります。
num = 1; ( '00' + num ).slice( -3 ); // '001' を返す num = ''; ( '00' + num ).slice( -3 ); // '00' を返す … 2桁になる