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 相关文章推荐
一些主流JS框架中DOMReady事件的实现小结
Feb 12 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
Mar 01 Javascript
JS实现的一个简单的Autocomplete自动完成例子
Apr 16 Javascript
JavaScript立即执行函数的三种不同写法
Sep 05 Javascript
AspNet中使用JQuery boxy插件的确认框
May 20 Javascript
原生javascript实现的全屏滚动功能示例
Sep 19 Javascript
vue页面加载闪烁问题的解决方法
Mar 28 Javascript
详解用场景去理解函数柯里化(入门篇)
Apr 11 Javascript
基于Vue和Element-Ui搭建项目的方法
Sep 06 Javascript
vue实现配置全局访问路径头(axios)
Nov 01 Javascript
vue+iview分页组件的封装
Nov 17 Vue.js
JavaScript执行机制详细介绍
Dec 06 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 和 HTML
2006/10/09 PHP
967 个函式
2006/10/09 PHP
常用的php ADODB使用方法集锦
2008/03/25 PHP
优化PHP代码的53条建议
2008/03/27 PHP
PHP+shell实现多线程的方法
2015/07/01 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
Python map和reduce函数用法示例
2015/02/26 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
Django用户认证系统 Web请求中的认证解析
2019/08/02 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
Python如何定义有可选参数的元类
2020/07/31 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
美国零售商店:Blue&Cream
2017/04/07 全球购物
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
某公司.Net方向面试题
2014/04/24 面试题
Java编程面试题
2016/04/04 面试题
献爱心标语
2014/06/21 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
2014年审计人员工作总结
2014/12/19 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技
A22国内电台短波广播频率表
2022/05/10 无线电