JavaScript数字前补0小技巧

经常处理财务数据的朋友可能会遇到这样一个需求:给定一个数值,转换成固定的长度的字符串,不足的地方前面补零,比如 123 => 000123

通常我们会尝试这样的做法:

let num = 123;
// 把数值转换成字符串
let numStr =  num.toString();
let strLen = 5;
// 计算差几个空缺的0
let spaceLen = strLen - numStr.length;

// 拼出这些0
let spaceStr = '';
for(let i=0; i<spaceLen; i++){
    spaceStr += '0';
}

// 把拼出来的0和原始数字字符串相加
let result = spaceStr + numStr;

在这个做法中,我们先尝试把数字转换成字符串,然后计算字符串的长度,生成缺少的0位字符串,再拼装一起。

但是!实际上我们一行代码就可以解决这个问题:

('00000' + 123).slice(-5)

在这个方案中,我们先尝试用我们约定数量(5位)的0字符串加上我们的数字,组成一个新的字符串00000123,然后使用slice从字符串的末尾截取后我们需要的长度(5位),然后就能拿到我们想要的值了。

//zhuwenlong.com

这个方法虽然简单,但是有一点需要提醒大家,在实际的生产环境中我们必须要考虑到数值长度大于我们约定的长度的情况(12312214124=>214124)。

Write a response...
Mofei Zhu
publish
Mofei
2019-01-11 13:23
@Stephen  🙄🙄🙄🙄
0
 Replay
@Mofei  
Replay
Stephen
2019-01-11 13:20
崇拜Mofei!
0
 Replay
@Stephen  
Replay