在JavaScript中建议零填充值的推荐方法是什么?我想我可以构建一个自定义函数以将零填充到类型转换值上,但是我想知道是否有更直接的方法来做到这一点?
注意: “零填充”是指该词在数据库中的含义(其中数字5的6位零填充表示为“ 000005”)。
正如评论员所指出的那样,该解决方案是“聪明的”,而且通常就像聪明的解决方案一样,它占用大量内存并且相对较慢。如果您担心性能,请不要使用此解决方案! 可能已过时:自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”。
正如评论员所指出的那样,该解决方案是“聪明的”,而且通常就像聪明的解决方案一样,它占用大量内存并且相对较慢。如果您担心性能,请不要使用此解决方案!
可能已过时:自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一样。