/**
* 自定義函數名:PrefixZero
* @param num: 被操作數
* @param n: 固定的總位數
*/
function PrefixZero(num, n) {
return (Array(n).join(0) + num).slice(-n);
}
使用原理下::
- Array(5) => 創建了一個長度為5的空數組
console.log(Array(5));// [empty × 5]
- Array(5).join(0) => 用0拼接將數組轉換成字符串
console.log(Array(5).join(0));// 0000
- Array(5).join(0)+91 => 通過+,實現字符串的拼接
console.log(Array(5).join(0)+91);// 000091
- (Array(5).join(0) + 91).slice(-5) => slice(startIndex,endIndex)方法,用於截取
參數說明:
參數是起始位置,含頭不含尾,
只有一個參數時,表示從該起始位置一直截取到最后。
參數值為負數時,表示從后往前數,如最后一位,索引是-1- PS:不知為何,引入es6的Api不行----------‘X’.padStart(5,ab),使用規則如下:
ES2017 引入了字符串補全長度的功能。如果某個字符串不夠指定長度,會在頭部或尾部補全。
padStart()用於頭部補全,padEnd()用於尾部補全。'x'.padStart(5, 'ab') // 'ababx' 'x'.padStart(4, 'ab') // 'abax' 'x'.padEnd(5, 'ab') // 'xabab' 'x'.padEnd(4, 'ab') // 'xaba'上面代碼中,
padStart()和padEnd()一共接受兩個參數,第一個參數是字符串補全生效的最大長度,第二個參數是用來補全的字符串。如果原字符串的長度,等於或大於最大長度,則字符串補全不生效,返回原字符串。
'xxx'.padStart(2, 'ab') // 'xxx' 'xxx'.padEnd(2, 'ab') // 'xxx'如果用來補全的字符串與原字符串,兩者的長度之和超過了最大長度,則會截去超出位數的補全字符串。
'abc'.padStart(10, '0123456789') // '0123456abc'如果省略第二個參數,默認使用空格補全長度。
'x'.padStart(4) // ' x' 'x'.padEnd(4) // 'x '
padStart()的常見用途是為數值補全指定位數。下面代碼生成 10 位的數值字符串。'1'.padStart(10, '0') // "0000000001" '12'.padStart(10, '0') // "0000000012" '123456'.padStart(10, '0') // "0000123456"另一個用途是提示字符串格式。
'12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12" '09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12" 不知哪位大佬知道,希望可以不吝賜教
