在 TypeScript 中为数字添加前导零
Add Leading Zeros to a Number in TypeScript
在 TypeScript 中为数字添加前导零:
- 将数字转换为字符串。
- 调用该
padStart()
方法将零添加到字符串的开头。 - 该
padStart
方法返回一个新字符串,其中从一开始就应用了指定的填充字符串。
索引.ts
function addLeadingZeros(num: number, totalLength: number): string { return String(num).padStart(totalLength, '0'); } console.log(addLeadingZeros(5, 2)); // 👉️ "05" console.log(addLeadingZeros(5, 3)); // 👉️ "005" console.log(addLeadingZeros(5, 4)); // 👉️ "0005" console.log(addLeadingZeros(100, 2)); // 👉️ "100" // ✅ or use the Addition (+) operator const num = '00' + 3; console.log(num); // 👉️ "003"
我们将以下 2 个参数传递给
String.padStart
方法。
- 字符串的目标长度——字符串被填充字符串填充到这个长度。这也考虑了十进制字符或减号。
- 填充字符串– 应应用于字符串开头的子字符串。
为了能够使用该padStart
方法,我们必须将数字转换为字符串。
如果将填充后的字符串转换回数字,任何前导零都将自动删除。这是因为
0005 === 5
。JavaScript(和 TypeScript)不会保留无关紧要的前导零。这就是为什么我们显式地将
函数的
返回类型设置为string
.
如果字符串的长度超过提供的目标长度,则整个字符串将从该padStart
方法中返回。
如果您需要处理负数,则需要添加一条
if
语句,在添加前导零后添加减号。索引.ts
function addLeadingZeros(num: number, totalLength: number): string { if (num < 0) { const withoutMinus = String(num).slice(1); return '-' + withoutMinus.padStart(totalLength, '0'); } return String(num).padStart(totalLength, '0'); } console.log(addLeadingZeros(5, 2)); // 👉️ "05" console.log(addLeadingZeros(-5, 3)); // 👉️ "-005"
我们添加了一个if
语句来检查是否向函数提供了负数。
请注意,我们故意不在新字符串的目标长度中包含减号。
要处理负数,我们只需要去除负号,添加前导零并将负号添加到字符串的前面。
另一种可能更简单的方法是使用加法 (+) 运算符。
索引.ts
const positive = '00' + 8; console.log(positive); // 👉️ "008" const negative = '-' + '00' + String(-8).slice(1); console.log(negative); // 👉️ "-008"
我们使用与方法完全相同的方法来处理负数
padStart
。