共计 999 个字符,预计需要花费 3 分钟才能阅读完成。
ES6 提供了一个新的办法 padStart(),具备字符串补全长度的性能。第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。例如:
1、字符串长度小于最小长度
'x'.padStart(5, 'ab') // 'ababx' | |
将字符串 x 应用 ab 补全长度 5 位,当然这 5 蕴含自身字符串的长度。 |
2、如果字符串长度大于最小长度,则返回字符串,如
"bacdef".padSatrt(3,"xxx") // "bacdef"
3、如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。
'abc'.padStart(10, 'xxxxxxxx') // xxxxxxxabc
看到这大家有没有想到,将工夫转换为年月日时分秒时,咱们会用 if 或者三元判断月、日、时、分、秒大于等于 10 和小于 10 的状况,针对小于 10 的前边会拼接 ”0″,这个办法能够省去咱们大量的判断了,代码如下:
function formatData() {let now = new Date(); | |
let year = now.getFullYear(); | |
let month = (now.getMonth() + 1).toString().padStart(2, "0"); | |
let date = (now.getDate()).toString().padStart(2, "0"); | |
let hh = (now.getHours()).toString().padStart(2, "0"); | |
let mm = (now.getMinutes()).toString().padStart(2, "0"); | |
let ss = (now.getSeconds()).toString().padStart(2, "0"); | |
return `${year}-${month}-${date} ${hh}:${mm}:${ss}`; | |
} |
当前能够不必在大量写判断了,缩小代码量。
当然和 padStart() 对应的还有 padEnd() 办法,用法是一样的,对于 padEnd() 咱们平时用的最多的场景就是把身份证或者手机号显示后四位,其余数字用 ”*” 代替,对用户是一种爱护。
function telFormat() { | |
let tel = "13255557894"; | |
return tel.slice(-4).padStart(tel.length, "*"); | |
} | |
// telFormat() 后果:*******7894 |
正文完