JavaScript格式编号为天,总是3位数

ali*_*ali 10 javascript format numbers digits days

可能重复:
如何使用JavaScript创建Zerofilled值?

我必须输出一个必须始终有3位数的日期编号.而不是3,它必须写003,而不是12,它必须写012.如果它大于100输出它没有格式化.我想知道是否有一个我可以使用的正则表达式或一些快速的内联脚本,或者我必须创建一个应该这样做并返回结果的函数.谢谢!

geo*_*org 24

怎么样:

 zeroFilled = ('000' + x).substr(-3)
Run Code Online (Sandbox Code Playgroud)

对于任意宽度:

 zeroFilled = (new Array(width).join('0') + x).substr(-width)
Run Code Online (Sandbox Code Playgroud)

根据评论,这似乎更准确:

lpad = function(s, width, char) {
    return (s.length >= width) ? s : (new Array(width).join(char) + s).slice(-width);
}
Run Code Online (Sandbox Code Playgroud)


Mat*_*ens 6

我在 Samuel Mullen的博客上找到了一个优雅的解决方案。我只是优化了zeroes创作。

function lpad(value, padding) {
    var zeroes = new Array(padding+1).join("0");
    return (zeroes + value).slice(-padding);
}
Run Code Online (Sandbox Code Playgroud)

用法:lpad(12, 3)结果"012"


小智 5

你可以这样做...

("00" + day).slice(-3)
Run Code Online (Sandbox Code Playgroud)

它会在前面添加零,然后.slice()始终为您提供字符串的最后 3 个值。