Hinweis: Siehe Update 2, wenn Sie das neueste ECMAScript verwenden ...
Hier eine Lösung, die mir wegen ihrer Einfachheit von einer Antwort auf eine ähnliche Frage gefallen hat :
var n = 123
String('00000' + n).slice(-5);
('00000' + n).slice(-5);
AKTUALISIEREN
Wie @RWC vorgeschlagen hat, können Sie dies natürlich gut in eine generische Funktion wie diese einbinden:
function leftPad(value, length) {
return ('0'.repeat(length) + value).slice(-length);
}
leftPad(123, 5);
Und für diejenigen, die das Stück nicht mögen:
function leftPad(value, length) {
value = String(value);
length = length - value.length;
return ('0'.repeat(length) + value)
}
Wenn es jedoch auf die Leistung ankommt, empfehle ich, die verknüpfte Antwort durchzulesen, bevor Sie eine der vorgeschlagenen Lösungen auswählen.
UPDATE 2
In ES6 enthält die String-Klasse jetzt eine integrierte padStartMethode, mit der einem String führende Zeichen hinzugefügt werden. Überprüfen Sie MDN hier als Referenz auf String.prototype.padStart(). Und es gibt auch eine padEndMethode zum Beenden von Zeichen.
Mit ES6 wurde es so einfach wie:
var n = 123;
n.padStart(5, '0');