在JavaScript中推荐的零填充方法是什么?我想我可以构建一个自定义函数来填充零到类型转换的值,但我想知道是否有更直接的方法来做到这一点?
注意:这里的“zeroffilled”指的是数据库意义上的单词(其中数字5的6位零填充表示形式将是“000005”)。
在JavaScript中推荐的零填充方法是什么?我想我可以构建一个自定义函数来填充零到类型转换的值,但我想知道是否有更直接的方法来做到这一点?
注意:这里的“zeroffilled”指的是数据库意义上的单词(其中数字5的6位零填充表示形式将是“000005”)。
当前回答
一个愚蠢的递归方法是:
function paddingZeros(text, limit) {
if (text.length < limit) {
return paddingZeros("0" + text, limit);
} else {
return text;
}
}
这里的限制是你想要的字符串大小。
例如: appendZeros(“7829”, 20) // 00000000000000007829
其他回答
并不是说这个问题需要更多的答案,但我认为我应该添加这个简单的lodash版本。
_。屏幕左边(6号,0号)
以下提供了一个快速的解决方案:
函数numberPadLeft(num, max, padder = "0"){ 返回"" == (num += "") ?“”: (dif = Max - num.length, dif > 0 ? 微调电容器。重复(dif < 0 ?0: dif) + num: num) }
要填充数字的末尾,使用num.toFixed
例如:
document.getElementById('el').value = amt.toFixed(2);
这是我找到的最简单的解决办法,而且很有效。
function zFill(n,l){
return
(l > n.toString().length) ?
( (Array(l).join('0') + n).slice(-l) ) : n;
}
我在这个表单中没有看到任何答案所以这里是我的正则表达式和字符串操作
(也适用于负数和小数)
代码:
function fillZeroes(n = 0, m = 1) {
const p = Math.max(1, m);
return String(n).replace(/\d+/, x => '0'.repeat(Math.max(p - x.length, 0)) + x);
}
输出:
console.log(fillZeroes(6, 2)) // >> '06'
console.log(fillZeroes(1.35, 2)) // >> '01.35'
console.log(fillZeroes(-16, 3)) // >> '-016'
console.log(fillZeroes(-1.456, 3)) // >> '-001.456'
console.log(fillZeroes(-456.53453, 6)) // >> '-000456.53453'
console.log(fillZeroes('Agent 7', 3)) // >> 'Agent 007'