Lưu ý: xem Bản cập nhật 2 nếu bạn đang sử dụng ECMAScript mới nhất ...
Đây là một giải pháp tôi thích vì sự đơn giản của nó từ một câu trả lời cho một câu hỏi tương tự :
var n = 123
String('00000' + n).slice(-5);
('00000' + n).slice(-5);
CẬP NHẬT
Như @RWC đã đề xuất, tất nhiên, bạn có thể kết hợp điều này một cách độc đáo trong một hàm chung như thế này:
function leftPad(value, length) {
return ('0'.repeat(length) + value).slice(-length);
}
leftPad(123, 5);
Và đối với những người không thích lát:
function leftPad(value, length) {
value = String(value);
length = length - value.length;
return ('0'.repeat(length) + value)
}
Nhưng nếu hiệu suất quan trọng, tôi khuyên bạn nên đọc qua câu trả lời được liên kết trước khi chọn một trong các giải pháp được đề xuất.
CẬP NHẬT 2
Trong ES6, lớp String bây giờ đi kèm với một padStartphương thức có sẵn để thêm các ký tự đứng đầu vào một chuỗi. Kiểm tra MDN tại đây để tham khảo String.prototype.padStart(). Và cũng có một padEndphương pháp cho các ký tự kết thúc.
Vì vậy, với ES6, nó trở nên đơn giản như:
var n = 123;
n.padStart(5, '0');