数字补零或字符串补零

ES2017最新方法

padStart()和padEnd

1
2
3
4
5
6
7
8
9
10
11
12
13
14

num.toString().padStart(2,"0");

/*
* param {*} padStart(n,str) n表示多少位,str需要填充值
* param {*} padEnd(n,str)
*/

//根据位数前后补0
"211".toString().padStart(5,"0")
"00211"

"211".toString().padEnd(5,"0")
"21100"

参考另一篇详解

兼容浏览器问题

自己封装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
* param val 这是传入的字符或数字
* param num 定义的长度
*/
afterNum(val, num) {
var passNum;
if (val.toString().length > num) {
passNum = this.transfer(val.toString())
} else {//需要做处理,填充0,处理数字
var currNum = (Array(num).join(0) + val.toString()).slice(-num);
passNum = this.transfer(currNum)
}
return passNum;
}

位数补零,以及三位一个逗号。

例如:七位数,三位一个逗号
把123 实现 "0,000,123"

封装:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
* param val 这是传入的字符或数字
* param num 定义的长度
*/
function afterNum(val, num) {
var passNum;
if (val.toString().length > num) {
passNum = transfer(val.toString())
} else {//需要做处理,填充0,处理数字
var currNum = (Array(num).join(0) + val.toString()).slice(-num);
passNum = transfer(currNum)
}
return passNum;
}
function transfer(data) {
var thisArray = new Array();
data.split('').reverse().forEach((element, index) => {
// console.log((index + 1) % 3)
thisArray.push({
isPoint: false,
val: element,
})
if ((index + 1) % 3 == 0) {
if (data.length % 3 == 0 && index + 1 == data.length) {

} else {
thisArray.push({
isPoint: true,
val: ",",
})
}


}
});
return thisArray.reverse()
}
分享到