在 JavaScript 中零填充值的推荐方法是什么?我想我可以构建一个自定义函数来将零填充到类型转换的值上,但我想知道是否有更直接的方法来做到这一点?
注意: “填零”是指数据库意义上的单词(其中数字 5 的 6 位填零表示为“000005”)。
读者注意! 正如评论者所指出的,这个解决方案是“聪明的”,而且聪明的解决方案通常是,它是内存密集型的并且相对较慢。如果您关心性能,请不要使用此解决方案! 可能已过时 :ECMAScript 2017 包括String.prototype.padStart和Number.prototype.toLocaleString自 ECMAScript 3.1 起就存在。例子: 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 2017 包括String.prototype.padStart和Number.prototype.toLocaleString自 ECMAScript 3.1 起就存在。例子:
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一样。