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

es3中使用es6/7的字符串扩展的更多相关文章

  1. 【ES6基础】字符串扩展

    4.字符串扩展 (1)for...of循环遍历. let foo = [1,2,3,4,5,6] for(let i of foo){ console.log(i); } 结果: (2)include ...

  2. es6基础(4)--字符串扩展

    //字符串扩展 { console.log('a','\u0061'); console.log('s','\u20BB7');//超过了0xffff console.log('s','\u{20BB ...

  3. es6 语法 (字符串扩展)

    { console.log('a',`\u0061`); //a,a console.log('s',`\u20BB7`); //s ₻7 console.log('s',`\u{20BB7}`) / ...

  4. ES6中字符串扩展

    ES6中字符串扩展 ① for...of 遍历字符串: 例如: for(let codePoint of 'string'){ console.log(codePoint) } 运行结果: ②  in ...

  5. ES6字符串扩展

    前面的话 字符串是编程中重要的数据类型,只有熟练掌握字符串操作才能更高效地开发程序.JS字符串的特性总是落后于其它语言,例如,直到 ES5 中字符串才获得了 trim() 方法.而 ES6 则继续添加 ...

  6. ES6学习历程(字符串的扩展)

    字符串的扩展 在看这一节的时候前半部分写的都是关于unicode的内容,我个人感觉这部分在实际的开发中用的很少,所以不打算在做记录,等届时用到再有针对性的看,所以就将在ES6里面关于字符串操作的一些新 ...

  7. 【ES6 】ES6 字符串扩展及新增方法

    模板字符串 传统写法 var str = 'There are <b>' + basket.count + '</b> ' + 'items in your basket, ' ...

  8. ES6学习笔记(字符串和数值)

    (一)字符串的扩展 1.字符串的遍历 for (let codePoint of 'foo') { console.log(codePoint) } // "f" // " ...

  9. ES6对数组的扩展(简要总结)

    文章目录 数组的扩展(ES6) 1. 扩展运算符 2. Array.from 3. Array.of() 4. copyWithin() 5. find() 和 findIndex() 6. fill ...

随机推荐

  1. Ext Radio 取消选中

    今天,做项目的时候遇到了要吧Ext Radio单选按钮取消选中状态,由于没有在formpanel中写, 导致不能用reset()方法,试了各种方法,最后这样写管用. radio1.setValue(f ...

  2. [Head First Python]6. 定制数据对象:打包代码与数据

    相同功能,演进实现 数据文件 sarah2.txt sarah Sweeney,2002-6-17,2:58,2.58,2:39,2-25,2-55,2:54,2.18,2:55,2:55 1- 返回 ...

  3. php连接postgresql

    在ubuntu下用php连接postgresql需要下个模块php5-pgsql 连接数据库并显示一张表的内容: <?php #连接数据库 $conn = pg_connect("ho ...

  4. oc语言--语法

    一.OC简介 1.简介 它是C语言的基础上,增加了一层面向对象语法 OC完全兼容C语言 可以在OC代码中混入C语言代码,甚至是C++代码 可以使用OC开发mac OS X平台和IOS平台的应用程序 2 ...

  5. mysql的client和sever之间通信password的传输方式

    本文想要说明的是,当我们用mysql -uroot -p1234567 -h127.0.0.1 -P3306 去连接mysql server时密码是通过什么样的形式传过去的呢? 首先密码这种东西明文传 ...

  6. window7下statsvn统计代码量

    下载statsvn:http://www.statsvn.org/ 将下载后的statsvn.jar放到d:\svn目录下; 打开cmd窗口切换到需要统计代码的项目目录如:d:\project\web ...

  7. HtmlNodeType枚举

    HtmlNodeType是一个枚举,用于说明一个节点的类型. 源代码如下所示: public enum HtmlNodeType { Document = 0, Element = 1, Commen ...

  8. C# partial修饰符_分部类_分部方法

    今天翻了翻书,发现自己还是遗留下不少基础性的东西,老实说,不管一些基础的东西用到不用到都很应该了解,因为基础毕竟学习量不是很大. 一.分部类 什么是部分类呢?简单来说就是将一个类型或方法拆分到两个或多 ...

  9. Linux下的命令行上网

    对于网页浏览器现在大多数人用links/elinks,对了,还有个老牌一点的文本浏览器Lynx,links/elinks也是从Lynx中fork出来的. 以上所说的虽然能字符界面来浏览网页,但是不能显 ...

  10. Mybatis的连接池

    先总结一个原则:mytatis的连接池最大值poolMaximumActiveConnections尽量跟服务器的并发访问量持平以至于大于并发访问量. 原因:在org.apache.ibatis.da ...