Примітка: див. Оновлення 2, якщо ви використовуєте останню версію ECMAScript ...
Ось рішення, яке мені сподобалося простотою від відповіді на подібне питання :
var n = 123
String('00000' + n).slice(-5);
('00000' + n).slice(-5);
ОНОВЛЕННЯ
Як запропонував @RWC, ви можете, звичайно, красиво обернути це у загальну функцію, як це:
function leftPad(value, length) {
return ('0'.repeat(length) + value).slice(-length);
}
leftPad(123, 5);
А для тих, хто не любить скибочку:
function leftPad(value, length) {
value = String(value);
length = length - value.length;
return ('0'.repeat(length) + value)
}
Але якщо продуктивність має значення, рекомендую прочитати відповідь на відповідь, перш ніж вибрати одне із запропонованих рішень.
ОНОВЛЕННЯ 2
У ES6 клас String тепер поставляється з вбудованим padStartметодом, який додає провідні символи до рядка. Перевірте MDN тут для довідки String.prototype.padStart(). І є такожpadEnd метод закінчення символів.
Тож із ES6 це стало так просто, як:
var n = 123;
n.padStart(5, '0');