一尘不染

JavaScript如何用前导零填充值?

javascript

在JavaScript中建议零填充值的推荐方法是什么?我想我可以构建一个自定义函数以将零填充到类型转换值上,但是我想知道是否有更直接的方法来做到这一点?

注意: “零填充”是指该词在数据库中的含义(其中数字5的6位零填充表示为“ 000005”)。


阅读 511

收藏
2020-04-22

共1个答案

一尘不染

正如评论员所指出的那样,该解决方案是“聪明的”,而且通常就像聪明的解决方案一样,它占用大量内存并且相对较慢。如果您担心性能,请不要使用此解决方案!

可能已过时:自ECMAScript 3.1起,ECMAScript2017包含 String.prototype.padStart和 Number.prototype.toLocaleString。例:

var n=-0.1;
n.toLocaleString('en',

{minimumIntegerDigits:4,minimumFractionDigits:2,useGrouping:false})

…将输出“ -0000.10”。

// or
const padded = (.1+"").padStart(6,"0");
`-${padded}`

…将输出“ -0000.1”。

您只需一个简单的功能

function zeroFill( number, width )
{
  width -= number.toString().length;
  if ( width > 0 )
  {
    return new Array( width + (/\./.test( number ) ? 2 : 1) ).join( '0' ) + number;
  }
  return number + ""; // always return a string
}

如果您想保留名称空间或其他内容,可以将其拷贝到库中。就像jQuery的extend一样。

2020-04-22