(这不是重复项。我在提供的链接中找不到解决方案)。
说我有一个来自用户的html形式的输入,旨在用作序列号或类似的数字。该数字可以以0开头。例如0001。
在Javascript中,如果该数字(0001)递增,则为2。
我想保留前导0以获得0002。
如何在Javasript中做到这一点?
感谢您的期待。
答案 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