javascript - 如何在javascript中将整数格式化为特定长度?

我在 Javascript 中有一个数字,我知道它小于 10000 并且也是非负数。我想将它显示为一个四位数字,前导零。还有什么比以下更优雅的吗?

if(num<10) num="000"+num;
else if(num<100) num="00"+num;
else if(num<1000) num="0"+num;

我想要一些内置在 Javascript 中的东西,但我似乎找不到任何东西。

最佳答案

我能想到的最简单的方法是这样的:

("000" + num).slice(-4)

填充数字是一个字符串。
将数字添加到字符串时,会转换为字符串。
Strings 有一个方法 slice,它返回一段固定长度的字符串。
如果长度为负,则返回的字符串从字符串的末尾开始切分。

测试:

var num=12;
console.log(("000" + num).slice(-4)); // Will show "0012"

当然,这仅适用于最多 4 位的正整数。一个稍微复杂的解决方案,将处理正整数:

'0'.repeat( Math.max(4 - num.toString().length, 0)) + num

通过重复加零来创建一个字符串,只要位数(字符串的长度)小于4 添加数字,然后也将其转换为字符串。

编辑:从现在开始你可能应该使用这个功能:

String(num).padStart(4,'0')

它仍然不能处理负数...

https://stackoverflow.com/questions/1127905/

相关文章:

hadoop - hadoop namenode 格式到底是什么?

c# - 如何将百分比字符串转换为双倍?

java - 使用 DecimalFormat 显示填充零

java - 使用 printf 和 format 进行格式化

string - 在 Excel 中将时间字段转换为字符串

html - 格式化 HTML 表格单元格以便 Excel 格式化为文本?

wpf - 如何使所有文本大写/大写?

javascript - 如何在 Javascript 中为字符串添加斜杠?

python - 如何在 Python logging.Formatter 中右对齐级别字段

python - 将 Python 模块划分为多个区域