JavaScriptで「1」を「0001」に変換する [重複] 質問する

JavaScriptで「1」を「0001」に変換する [重複] 質問する

重複の可能性あり:
文字列をパディングして、指定された長さにすることができる JavaScript 関数はありますか?

サードパーティのライブラリを使用せずに、JavaScript で '1' を '0001' に変換するにはどうすればよいでしょうか。私は、spritf を使用して PHP でこれを実行しました。$time = sprintf('%04.0f',$time_arr[$i]);

ベストアンサー1

これはちょっとした巧妙なトリックです (以前 SO で見たことがあると思います):

var str = "" + 1
var pad = "0000"
var ans = pad.substring(0, pad.length - str.length) + str

JavaScript は、substring の 2 番目の引数が負の場合、一部の言語よりも寛容であるため、「正しくオーバーフローします」(または、見方によっては誤ってオーバーフローします)。

つまり、上記では次のようになります。

  • 1 -> "0001"
  • 12345 -> 「12345」

負の数のサポートは練習として残しておきます ;-)

おすすめ記事