在 TypeScript 中为数字添加前导零

在 TypeScript 中为数字添加前导零

Add Leading Zeros to a Number in TypeScript

在 TypeScript 中为数字添加前导零:

  1. 将数字转换为字符串。
  2. 调用该padStart()方法将零添加到字符串的开头。
  3. 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
方法。

  1. 字符串的目标长度——字符串被填充字符串填充到这个长度。这也考虑了十进制字符或减号。
  2. 填充字符串– 应应用于字符串开头的子字符串

为了能够使用该padStart方法,我们必须将数字转换为字符串。

如果将填充后的字符串转换回数字,任何前导零都将自动删除。这是因为0005 === 5JavaScript(和 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

发表评论