Uwaga: zobacz Aktualizacja 2, jeśli używasz najnowszego ECMAScript ...
Tutaj rozwiązanie, które podobało mi się ze względu na swoją prostotę z odpowiedzi na podobne pytanie :
var n = 123
String('00000' + n).slice(-5);
('00000' + n).slice(-5);
AKTUALIZACJA
Jak zasugerował @RWC, możesz oczywiście ładnie opakować to w ogólną funkcję, taką jak ta:
function leftPad(value, length) {
return ('0'.repeat(length) + value).slice(-length);
}
leftPad(123, 5);
A dla tych, którzy nie lubią plastra:
function leftPad(value, length) {
value = String(value);
length = length - value.length;
return ('0'.repeat(length) + value)
}
Jeśli jednak liczy się wydajność, przed wybraniem jednego z sugerowanych rozwiązań zalecamy przeczytanie połączonej odpowiedzi.
AKTUALIZACJA 2
W ES6 klasa String ma teraz wbudowaną padStartmetodę, która dodaje wiodące znaki do ciągu. Sprawdź MDN tutaj, aby uzyskać informacje na temat String.prototype.padStart(). Jest też padEndmetoda kończenia znaków.
Z ES6 stało się to tak proste, jak:
var n = 123;
n.padStart(5, '0');