字符串扩展-padStart()和padEnd()
是ES6中新增的给字符串补充长度的新方法String.prototype.padStart(maxLength,fillString=' ')或者String.prototype.padEnd(maxLength,fillString=' ')填充字符串。
maxLength来规定这个字符串的长度。fillString=' '要补充的内容。
padStart()在字符串头部补全。
padEnd()在字符串尾部补全。
1 'AA'.padStart(5,'B') //输出:BBBAA 2 'AA'.padStart(5,'BC') //输出:BCBAA 3 4 'AA'.padEnd(5,'B') //输出:AABBB 5 'AA'.padEnd(5,'BC') //输出:AABCB
(1)如果原字符串长度等于或大于指定得最小长度,则返回原字符串。
1 'AAAA'.padStart(2,'BB') //输出:AAAA 2 'AAAA'.padEnd(2,'BB') //输出:AAAA
(2) 如果用来补齐的字符串与原字符串两者的长度之和超过了指定的最小长度,则会截取超过位数的补全字符串。
1 'AAA'.padStart(5,'BCDE') //输出:BCAAA 2 'AAA'.padEnd(5,'BCDE') //输出:AAABC
(3) 如果省略第二个参数,默认使用空格补全。下面的代码是生成10位的数值字符串。
1 'A'.padStart(4) //输出:' A' 2 'A'.padEnd(4) //输出:'A '
使用场景:可用在时间格式的转换问题上:
1 var da = new Date() 2 var y = da.getFullYear() 3 var m = (da.getMonth()+1).toString().padStart(2,'0') 4 var d = da.getDate().toString().padStart(2,'0') 5 var h = da.getHours().toString().padStart(2,'0') 6 var f = da.getMinutes().toString().padStart(2,'0') 7 var s = da.getSeconds().toString().padStart(2,'0') 8 9 return `${y}-${m}-${d} ${h}:${f}:${s}` 10 11 //因为时间在单位数时会出现2019-2-10 8:10:5的样式 12 //可以使用补全代码的方式,输出:2019-02-10 08:10:05