JS字符串補(bǔ)全方法padStart()和padEnd()
這個(gè)方法無(wú)意中看到的,感覺(jué)還是蠻實(shí)用的,特此分享一波。我想大家都會(huì)有遇到將時(shí)間戳轉(zhuǎn)換成時(shí)間格式的時(shí)候,時(shí)間或日期不足2位的前面補(bǔ)0。有了今天說(shuō)的這個(gè)東西,就又可以少寫(xiě)幾行代碼了,大家在項(xiàng)目中遇到類(lèi)似場(chǎng)景可以去使用感受下。
ES2017 引入了字符串補(bǔ)全長(zhǎng)度的功能。如果某個(gè)字符串不夠指定長(zhǎng)度,會(huì)在頭部或尾部補(bǔ)全。
padStart() padEnd() 方法用另一個(gè)字符串填充當(dāng)前字符串(如果需要的話則重復(fù)填充),返回填充后達(dá)到指定長(zhǎng)度的字符串。
padStart() 從當(dāng)前字符串的開(kāi)始(左側(cè)) 位置填充。
padEnd() 從當(dāng)前字符串的末尾(右側(cè))開(kāi)始填充。
語(yǔ)法:
str.padStart(targetLength [, padString]) str.padEnd(targetLength [, padString])
padStart() 和 padEnd() 一共接受兩個(gè)參數(shù),第一個(gè)參數(shù) targetLength 是當(dāng)前字符串需要填充到的目標(biāo)長(zhǎng)度,第二個(gè)參數(shù) padString 是用來(lái)填充的字符串,缺省值為" "。
返回值:
在原字符串開(kāi)頭填充指定的填充字符串直到目標(biāo)長(zhǎng)度所形成的新字符串。
如果 targetLength 小于當(dāng)前字符串的長(zhǎng)度,則字符串補(bǔ)全不生效,返回當(dāng)前字符串本身。
'abc'.padStart(1, 'd'); // "abc" 'abc'.padEnd(1, 'd'); // "abc"
如果 targetLength 小于用來(lái)填充的字符串長(zhǎng)度與原字符串的長(zhǎng)度之和,則截掉超出位數(shù)的補(bǔ)全字符串。
'abc'.padStart(6,"123456"); // "123abc" 'abc'.padEnd(6, "123456"); // "abc123"
如果省略第二個(gè)參數(shù) padString,即使用空格補(bǔ)全長(zhǎng)度。
'abc'.padStart(10); // " abc" 'abc'.padEnd(10); // "abc "
如果 padString 長(zhǎng)度過(guò)長(zhǎng),則會(huì)刪除后面多出的字符串。
'abc'.padStart(5, "foo"); // "foabc" 'abc'.padEnd(5, "foo"); // "abcfo"
應(yīng)用:
- 補(bǔ)全指定位數(shù),如格式化時(shí)間或日期時(shí),個(gè)位數(shù)補(bǔ)0
- 提示字符串格式 字符串拼接
示例:
當(dāng)我們使用時(shí)間戳并轉(zhuǎn)換成 yyyy-mm-dd hh:mm:ss 的格式。
function dataFormat(data) {
const dt = new Date(data * 1000) //注:如果是13位時(shí)間戳不用*1000
const y = dt.getFullYear()
const m = (dt.getMonth() + 1 + '').padStart(2, '0')
const d = (dt.getDay() + '').padStart(2, '0')
const hh = (dt.getHours() + '').padStart(2, '0')
const mm = (dt.getMinutes() + '').padStart(2, '0')
const ss = (dt.getSeconds() + '').padStart(2, '0')
return `${y}-${m}-$qmauigi ${hh}:${mm}:${ss}`
}
因著此方法是ES6新增方法,部分瀏覽器不支持,會(huì)有兼容性問(wèn)題。 查看 Polyfill 創(chuàng)建的String.prototype.padStart() / String.prototype.padEnd() 方法。
// https://github.com/uxitten/polyfill/blob/master/string.polyfill.js
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd
if (!String.prototype.padEnd) {
String.prototype.padEnd = function padEnd(targetLength,padString) {
targetLength = targetLength>>0; //floor if number or convert non-number to 0;
padString = String((typeof padString !== 'undefined' ? padString: ''));
if (this.length > targetLength) {
return String(this);
}
else {
targetLength = targetLength-this.length;
if (targetLength > padString.length) {
padString += padString.repeat(targetLength/padString.length); //append to original to ensure we are longer than needed
}
return String(this) + padString.slice(0,targetLength);
}
};
}
到此這篇關(guān)于JS字符串補(bǔ)全方法padStart()和padEnd()的文章就介紹到這了,更多相關(guān)JS padStart() padEnd()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺析JavaScript中的同名標(biāo)識(shí)符優(yōu)先級(jí)
這篇文章主要介紹了JavaScript中的同名標(biāo)識(shí)符優(yōu)先級(jí)。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12
JS連接SQL數(shù)據(jù)庫(kù)與ACCESS數(shù)據(jù)庫(kù)的方法實(shí)例
這篇文章主要介紹了JS連接SQL數(shù)據(jù)庫(kù)與ACCESS數(shù)據(jù)庫(kù)的方法實(shí)例,有需要的朋友可以參考一下2013-11-11
關(guān)于TypeScript模塊導(dǎo)入的那些事
Typescrit的模塊機(jī)制與es6的模塊基本類(lèi)似,也提供了轉(zhuǎn)換為amd,es6,umd,commonjs,system的轉(zhuǎn)換,下面這篇文章就來(lái)給大家詳細(xì)介紹了關(guān)于TypeScript模塊導(dǎo)入的那些事,需要的朋友可以參考借鑒,下面來(lái)一起看看吧2018-06-06
Javascript函數(shù)式編程簡(jiǎn)單介紹
什么是函數(shù)式編程?根據(jù)百度百科的描述,“函數(shù)式編程是種編程典范,它將電腦運(yùn)算視為函數(shù)的計(jì)算。函數(shù)編程語(yǔ)言最重要的基礎(chǔ)是 λ 演算(lambda calculus)。而且λ演算的函數(shù)可以接受函數(shù)當(dāng)作輸入(參數(shù))和輸出(返回值)?!?/div> 2015-10-10
JavaScript本地存儲(chǔ)與會(huì)話存儲(chǔ)的實(shí)現(xiàn)介紹
本地存儲(chǔ)和會(huì)話存儲(chǔ)是比較常用的方法,你知道兩者的區(qū)別嗎,本文詳細(xì)的介紹了JavaScript中本地存儲(chǔ)(LocalStorage)和會(huì)話存儲(chǔ)(SessionStorage)的使用,具有一定的參考價(jià)值,感興趣的可以了解一下2022-08-08
javascript實(shí)現(xiàn)發(fā)送短信倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)發(fā)送短信倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
將json當(dāng)數(shù)據(jù)庫(kù)一樣操作的javascript lib
使用javascript操作JSON的類(lèi)庫(kù)TAFFY DB,具體介紹了:查詢(xún)數(shù)據(jù)、添加數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)。2013-10-10最新評(píng)論

