如何在Javascript前面加0的数字?

时间:2019-03-26 16:57:03

标签: javascript

(这不是重复项。我在提供的链接中找不到解决方案)。

说我有一个来自用户的html形式的输入,旨在用作序列号或类似的数字。该数字可以以0开头。例如0001。

在Javascript中,如果该数字(0001)递增,则为2。

我想保留前导0以获得0002。

如何在Javasript中做到这一点?

感谢您的期待。

1 个答案:

答案 0 :(得分:1)

使用padStart来填充数字的开头。但是数字不是以零开头,因此数字必须显示为字符串。

要找到零的数量,您可以执行以下操作:

('001'.match(/^0+/) || [''])[0].length
  • '001'.match(/^0+/) –从字符串开头开始尽可能匹配零
  • || [''] –如果匹配返回undefined,请使用带有空字符串(即备用值)的数组
  • [0] –获取返回数组中的第一个值(匹配或后备)
  • .length –获取字符串的长度

let nums = [
  '1',
  '01',
  '001',
  '0001'
]

let str = ''

for (let i of nums) {
  let numZeros = (i.match(/^0+/) || [''])[0].length
  let num = Number(i)
  while (num < 20) {
    str += `<p>${String(num++).padStart(numZeros + 1, '0')}</p>`
  }
}

document.body.innerHTML = str