首页 > 解决方案 > 如何在Javascript中添加前面带0的数字?

问题描述

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

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

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

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

我如何在 Javasript 中做到这一点?

感谢期待。

标签: javascript

解决方案


使用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


推荐阅读