es3中使用es67的字符串扩展

mac2022-06-30  65

最近在看阮一峰的《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上面查看更完整的代码

转载于:https://www.cnblogs.com/jiangbingyang/p/5713256.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)