Theo như tôi có thể nói, không có cách tích hợp sẵn nào với Javascript để đệm một số có các số 0 đứng đầu để làm cho nó có chiều rộng cố định như với e. g. sprintf bằng các ngôn ngữ lập trình khác. Bài đăng này xem xét một cách để đệm một số bằng số 0 bằng Javascript
Xin lưu ý. điều này không hoạt động đối với số âm; . Tôi sẽ viết một bài khác để sửa lại những gì ở đây và sẽ hoạt động với số âm
Hàm sau sẽ đệm một số có các số 0 đứng đầu để chuỗi kết quả có độ dài "length". Ví dụ: nếu độ dài là 2 và số được truyền vào là 5 thì giá trị trả về là 05
function pad[number, length] { var str = '' + number; while [str.length < length] { str = '0' + str; } return str; }
Một số mã để kiểm tra ở trên
document.write[pad[1, 1] + '
']; document.write[pad[1, 2] + '
']; document.write[pad[15, 2] + '
']; document.write[pad[1, 3] + '
']; document.write[pad[15, 3] + '
']; document.write[pad[155, 3] + '
']; document.write[pad[1, 4] + '
']; document.write[pad[1, 5] + '
'];
Và đầu ra kết quả
1 01 15 001 015 155 0001 00001
Vào thứ Ba, tôi sẽ xem xét giải pháp thứ hai nếu bạn chỉ cần nhập một số thành hai số, giống như bạn sẽ làm cho ngày và tháng, giờ, phút và giây
Chào mừng bạn đến với hướng dẫn ngắn về cách thêm các số 0 ở đầu và cuối vào các số trong Javascript. Vì vậy, bạn có một số số yêu cầu đệm số 0?
Cách dễ dàng để thêm các số 0 ở đầu hoặc cuối trong Javascript là
- Nối số với một chuỗi số không
document.write[pad[1, 1] + '
1
']; document.write[pad[1, 2] + '
']; document.write[pad[15, 2] + '
']; document.write[pad[1, 3] + '
']; document.write[pad[15, 3] + '
']; document.write[pad[155, 3] + '
']; document.write[pad[1, 4] + '
']; document.write[pad[1, 5] + '
'];document.write[pad[1, 1] + '
2
']; document.write[pad[1, 2] + '
']; document.write[pad[15, 2] + '
']; document.write[pad[1, 3] + '
']; document.write[pad[15, 3] + '
']; document.write[pad[155, 3] + '
']; document.write[pad[1, 4] + '
']; document.write[pad[1, 5] + '
'];
- Hoặc sử dụng các chức năng đệm chuỗi
document.write[pad[1, 1] + '
3
']; document.write[pad[1, 2] + '
']; document.write[pad[15, 2] + '
']; document.write[pad[1, 3] + '
']; document.write[pad[15, 3] + '
']; document.write[pad[155, 3] + '
']; document.write[pad[1, 4] + '
']; document.write[pad[1, 5] + '
'];document.write[pad[1, 1] + '
4
']; document.write[pad[1, 2] + '
']; document.write[pad[15, 2] + '
']; document.write[pad[1, 3] + '
']; document.write[pad[15, 3] + '
']; document.write[pad[155, 3] + '
']; document.write[pad[1, 4] + '
']; document.write[pad[1, 5] + '
'];
Điều đó bao gồm những điều cơ bản, nhưng chúng ta hãy xem qua một vài ví dụ nữa – Đọc tiếp
ⓘ Tôi đã bao gồm một tệp zip chứa tất cả mã nguồn ví dụ khi bắt đầu hướng dẫn này, vì vậy bạn không cần phải sao chép-dán mọi thứ… Hoặc nếu bạn chỉ muốn đi sâu vào
TRANG TRÌNH BÀY NHANH
TẢI XUỐNG & LƯU Ý
Đầu tiên, đây là liên kết tải xuống mã ví dụ như đã hứa
GHI CHÚ NHANH
Nếu bạn phát hiện ra một lỗi, hãy bình luận bên dưới. Tôi cũng cố gắng trả lời các câu hỏi ngắn, nhưng đó là một người so với cả thế giới… Nếu bạn cần câu trả lời gấp, vui lòng xem danh sách các trang web của tôi để được trợ giúp về lập trình
MÃ VÍ DỤ TẢI XUỐNG
Nhấp vào đây để tải xuống mã nguồn, tôi đã phát hành nó theo giấy phép MIT, vì vậy hãy thoải mái xây dựng trên mã nguồn hoặc sử dụng nó trong dự án của riêng bạn
PAD VỚI SỐ KHÔNG
Được rồi, bây giờ chúng ta hãy đi vào các ví dụ về cách đệm một số có các số 0 ở đầu và cuối
VÍ DỤ 1] DỄ DÀNG DẪN ĐẦU & DẪN SỐ 0
1-dễ dàng. html
// [A] THE NUMBERS
var numA = 123;
var numB = 123.45;
// [B] STRING CONCAT
console.log["000" + numA];
console.log[numB + "000"];
// [C] PAD STRING
console.log[numA.toString[].padStart[5, 0]];
console.log[numB.toString[].padEnd[8, 0]];
Như trong phần giới thiệu ở trên, cách dễ nhất để đệm một số bằng số 0 là –
- Nối với một chuỗi số không
- Hoặc chuyển đổi số thành chuỗi, sau đó sử dụng các hàm chuỗi pad
VÍ DỤ 2] CÁC SỐ 0 DẪN ĐẦU & DƯỚI CỦA PAD THỦ CÔNG
2-pad-zero. js
// [A] PAD WITH ZEROES
// NUM : THE ORIGINAL NUMBER
// LEAD : TOTAL NUMBER OF DIGITALS ALLOWED [WHOLE NUMBERS]
// TRAIL : TOTAL NUMBER OF DIGITALS ALLOWED [DECIMAL NUMBERS]
function padZero [num, lead, trail] {
// [A1] CONVERT NUMBER TO STRING
var cString = num.toString[];
// [A2] GET NUMBER OF DIGITS
var cWhole, cDec, cCheck = cString.indexOf["."];
// NO DECIMAL PLACES, A WHOLE NUMBER
if [cCheck == -1] {
cWhole = cString.length;
cDec = 0;
cString += ".";
}
// IS A DECIMAL NUMBER
else {
cWhole = cCheck;
cDec = cString.substr[cCheck+1].length;
}
// [A3] PAD WITH LEADING ZEROES
if [cWhole < lead] {
for [let i=cWhole; i