javascript框架设计读书笔记之字符串的扩展和修复


Posted in Javascript onDecember 02, 2014

1.repeat方法:将一个字符串重复自身n次。比如:repeat("chaojidan",2)   -> chaojidanchaojidan

方法1:

function repeat(str,n){
return Array.prototype.join.call({length:n+1},str);  

//在类数组{length:n+1}上下文下执行join方法,并传入str。也就是用str来分隔类数组的选项,类数组是空,所以就有n个str分隔n+1个"",得到的结果就是n个str连接。

}

方法2:

function repeat(str,n){
var s = str ,total = "";

while(n>0){              

//假设n是5,n%2后,等于1,因此total = str.s=strstr。n=2.第二次循环:s=strstrstrstr,n=1.第三次循环total = strstrstrstrstr,break,跳出循环,返回total,刚好是str重复了5次的字符串


if(n%2 ==1){     



total + =s;     //这里是2的0次方,也就是1,所有的正整数,都可以使用1,2,4,8....进行组合。比如:3=1+2,5=1+4,7=1+2+4.


}


if(n==1)
break;


s+=s;    //这里利用的是2的幂次方,2,4,8.....


n = n>>1;

}

return total ;

}

2.取字符串所有字节的长度:str.charCodeAt(i) >255 就把str的长度加一次就OK了.

3.转换驼峰风格:str.replace(/[-_][^-_]/g,function(match){return match.charAt(1).toUpperCase();}) 

//-_在[]中,不需要使用\,并且^在[]中是代表反的意思,就是遇到-a或_a,就被替换成A(match就是正则匹配的字符串_a,然后取a,并且大写)

4.转换为下划线风格:str.replace(/([a-z\d])([A-Z])/g,'$1_$2').replace(/\-/g,'_').toLowerCase();

//第一个replace,匹配cA,或者4A的字符串,然后用c_A或4_A替换。$1代表第一个子表达式。第二个replace就是使用_替换-。由于-不在[]中,所以需要加\。

5.去掉字符串中的html标签:str.replace(/<[^>]+>/g,''),这里面会把script标签去掉,但是不会去掉script中的js脚本

6.去掉script标签,并且移除里面的js脚本:str.replace(/<script[^>]*>(\S\s)*?)<\/script>/img,'')     

 /需要用\,防止转义。

//(\S\s)*?)尽可能少的匹配,非贪婪匹配。举个例子:<script>aaa</script>dddd<script>bbbb</script>,会先匹配<script>aaa</script>,再匹配<script>bbbb</script>,如果没加?,将是贪婪匹配,将会把<script>aaa</script>dddd<script>bbbb</script>全部匹配掉,连字符串dddd都去掉了。

7.将字符串经过html转义,得到适合在页面中显示的内容.

str.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"').replace(/'/g,''');

8.将字符串的html实体字符换成对应字符:

跟7相反,只是多了一个replace(/&#([\d]+);/g,function($0,$1){

return String.fromCharCode(parseInt($1,10))  })   //$1就是第一个子表达式匹配项。

9.trim:str.replace(/^\s+ | \s+$/g,'')   ,IE或早期的标准浏览器,把许多本属于空白的字符没有列为\s中,因此会有bug。不过,又何必执着兼容淘汰的浏览器呢。

Javascript 相关文章推荐
Javascript 篱式条件判断
Aug 22 Javascript
基于jQuery实现图片的前进与后退功能
Apr 24 Javascript
JS实现点击下载的小例子
Jul 10 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
Apr 10 Javascript
jQuery入门介绍之基础知识
Jan 13 Javascript
JavaScript实现自动变换表格边框颜色
May 08 Javascript
如何使用AngularJs打造权限管理系统【简易型】
May 09 Javascript
JavaScript兼容浏览器FF/IE技巧
Aug 14 Javascript
详解Javascript函数声明与递归调用
Oct 22 Javascript
vue实现a标签点击高亮方法
Mar 17 Javascript
vue.js 实现点击展开收起动画效果
Jul 07 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
May 13 Javascript
javascript框架设计读书笔记之模块加载系统
Dec 02 #Javascript
javascript框架设计读书笔记之种子模块
Dec 02 #Javascript
推荐一个封装好的getElementsByClassName方法
Dec 02 #Javascript
CSS3,HTML5和jQuery搜索框集锦
Dec 02 #Javascript
JavaScript和CSS交互的方法汇总
Dec 02 #Javascript
HTML,CSS,JavaScript速查表推荐
Dec 02 #Javascript
javascript函数声明和函数表达式区别分析
Dec 02 #Javascript
You might like
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
2013/04/08 PHP
php输出xml属性的方法
2015/03/19 PHP
PHP二维数组去重实例分析
2016/11/18 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
收藏Javascript中常用的55个经典技巧
2007/08/12 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
分享我对JS插件开发的一些感想和心得
2016/02/04 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
2016/10/18 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
微信分享调用jssdk实例
2017/06/08 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
python中返回矩阵的行列方法
2018/04/04 Python
Python2包含中文报错的解决方法
2018/07/09 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
Python中__repr__和__str__区别详解
2019/11/07 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
营销总经理岗位职责
2014/02/02 职场文书
学校领导班子四风对照检查材料
2014/09/27 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
四群教育工作总结
2015/08/10 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书
Golang: 内建容器的用法
2021/05/05 Golang
Django操作cookie的实现
2021/05/26 Python