最近在看阮一峰的《ES6標準入門》,在字元串擴展一節中有提到幾個新的擴展,覺得挺有意思,想在ES3裡面使用,於是就有下麵的相容性寫法。 repeat 將一個字元串重覆n次 startsWith 判斷字元串是否以某個字元串開頭,返回bool值 endsWith 判斷字元串是否以某個字元串結尾,返回bo ...
最近在看阮一峰的《ES6標準入門》,在字元串擴展一節中有提到幾個新的擴展,覺得挺有意思,想在ES3裡面使用,於是就有下麵的相容性寫法。
repeat
將一個字元串重覆n次
String.prototype.repeat||(String.prototype.repeat=function(number){
var r=[],i
if(Object.prototype.toString.call(number)!=='[object Number]'
||number<0){
return ''
}
number=parseInt(number)
for(i=0;i<number;i++){
r.push(this)
}
return r.join('')
})
includes
查找字元串中是否包含某字元串,返回bool值
String.prototype.includes||(String.prototype.includes=function(str,index){
return this.substr(index).indexOf(str)>0
})
startsWith
判斷字元串是否以某個字元串開頭,返回bool值
String.prototype.startsWith||(String.prototype.startsWith=function(str,index){
return this.substr(index).indexOf(str)===0
})
endsWith
判斷字元串是否以某個字元串結尾,返回bool值
String.prototype.endsWith||(String.prototype.endsWith=function(str,index){
var v=this.substring(0,index)
return v.indexOf(str)===v.length-str.length
})
padStart padEnd
補全長度
String.prototype.padStart||(String.prototype.padStart=function(length,str){
var result=[]
length=length-this.length
str=(str||" ")+''
for(var i=0;i<length;i++){
result.push(str.substr(i%str.length,1))
}
result.push(this)
return result.join('')
})
String.prototype.padEnd||(String.prototype.padEnd=function(length,str){
var result=[this]
length=length-this.length
str=(str|| " ")+''
for(var i=0;i<length;i++){
result.push(str.substr(i%str.length,1))
}
return result.join('')
})
補全這裡,還有一個格式化的功能還沒寫完,後續會繼續更新
這幾個擴展更詳細的介紹可以看這裡
去github上面查看更完整的代碼