javascript - 如何在Javascript中添加前面带0的数字?
问题描述
(这不是重复的。我在提供的链接中找不到解决方案)。
假设我有来自用户的 html 形式的输入,该形式旨在作为序列号或类似的形式。此数字可以以 0 开头。例如,0001。
在 Javascript 中,如果该数字 (0001) 增加,则变为 2。
我想保留前导 0 以获得 0002。
我如何在 Javasript 中做到这一点?
感谢期待。
解决方案
使用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
推荐阅读
- ruby-on-rails - 在rails中查询嵌套的jsonb哈希
- php - 数组的 Laravel 验证不起作用
- django - Makemigrations 给出 ValueError: too many values to unpack
- filter - ExtJS:如何通过过滤隐藏商店中的特定数据?
- javascript - 在段落中添加多个“阅读更多”链接 (readmore.js)
- python - Python中的dict和list
- angular - Angular 简单指令 ngIf
- reporting-services - SSRS 在数字和字母字符之间插入空格
- c# - 从 SuperPower 中的关键字获取字符串
- ios - 从当前登录的用户 Firebase 中检索数据