1. ホーム
  2. javascript

[解決済み] 値の先頭にゼロを埋め込むには?

2022-03-19 15:04:36

質問

JavaScriptで値をゼロ埋めする推奨される方法は何ですか?タイプキャストされた値にゼロを埋め込むカスタム関数を構築することができると想像していますが、これを行うより直接的な方法があるのか疑問に思っています。

ゼロフィルとは、データベース的な意味です(5という数字を6桁のゼロフィルで表現すると、quot;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" を出力します。

シンプルな関数があればいい

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 .