JavaScript 中的前導零
有時我們需要對類似於數字的字串進行排序。例如,10 按字母順序排在 2 之前,但在 02 之後。
前導零用於匹配數字的升序和字母順序。這篇文章將教授如何在 JavaScript 中附加前導零。
在 JavaScript 中將前導零附加到數字
padStart()
方法是 JavaScript 提供的內建方法。此方法用另一個字串填充或連線當前字串,直到結果字串達到指定長度。
如果有必要,它會多次附加它。填充從輸入字串的開頭應用,它返回一個指定目標長度的字串,並從開頭應用 padString
。
語法:
padStart(targetLength)
padStart(targetLength, padString)
String.padStart
方法接受以下 2 個引數:
- 達到這個長度的字串的
target length
,用填充字串填充字串。還考慮小數點或減號。 pad string
,應用於字串開頭的子字串。
padStart
方法僅適用於字串,因此要使用 padStart
方法,首先,我們必須將數字轉換為字串。在 padStart()
的文件中查詢更多資訊。
將前導零新增到數字的步驟:
- 將給定數字轉換為新字串。
- 呼叫 JavaScript 的
padStart()
方法將零附加/連線到字串的開頭。 padStart
方法返回一個新的字串,從頭開始應用指定的填充字串。
function addLeadingNumberZeros(number, totalLength) {
return String(number).padStart(totalLength, '0');
}
console.log(addLeadingNumberZeros(4, 2));
console.log(addLeadingNumberZeros(4, 3));
console.log(addLeadingNumberZeros(4, 4));
輸出:
"04"
"004"
"0004"
const num = '00' + 8;
console.log(num);
輸出:
008
如果將填充字串轉換回數字,所有前導零都會自動刪除,因為 008 === 8
。JavaScript 不會保持前導零無關緊要。
如果輸入字串長度超過指定的目標長度,則整個字串從 padStart
方法返回。如果你需要處理負數,你需要新增一個 if
語句,在新增前導零之後新增減號。
function addLeadingNumberZeros(number, totalLength) {
if (number < 0) {
const withoutNegativeSign = String(number).slice(1);
return '-' + withoutNegativeSign.padStart(totalLength, '0');
}
return String(number).padStart(totalLength, '0');
}
console.log(addLeadingNumberZeros(3, 2));
console.log(addLeadingNumberZeros(-3, 3));
輸出:
"03"
"-003"
新增一個 if
語句以檢查是否將負數提供給函式。請注意,我們有意不在新字串的目標長度中包含減號。
為了處理負數,我們必須刪除減號,新增前導零,並將減號新增到字串的開頭。最好的替代方法和更簡單的方法是使用加法運算子 (+
)。
const positiveNumber = '00' + 7;
console.log(positiveNumber);
const negativeNumber = '-' +
'00' + String(-7).slice(1);
console.log(negativeNumber);
當我們在任何瀏覽器中執行上面的程式碼時,你將得到以下輸出。
輸出:
"007"
"-007"
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn