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 相关文章推荐
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
Jan 12 Javascript
Notify - 基于jquery的消息通知插件
Oct 18 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
May 27 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
Mar 15 Javascript
angular select 默认值设置方法
Jun 23 Javascript
ES6正则表达式扩展笔记
Jul 25 Javascript
js Date()日期函数浏览器兼容问题解决方法
Sep 12 Javascript
vue+iview写个弹框的示例代码
Dec 05 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
Sep 27 Javascript
利用Dectorator分模块存储Vuex状态的实现
Feb 05 Javascript
Javascript的this详解
Mar 23 Javascript
node.js使用fs读取文件出错的解决方案
Oct 23 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的access操作类
2008/04/09 PHP
PHP下10件你也许并不了解的事情
2008/09/11 PHP
PHP取整数函数常用的四种方法小结
2012/07/05 PHP
基于Discuz security.inc.php代码的深入分析
2013/06/03 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
javascript之dhDataGrid Ver2.0.0代码
2007/07/01 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
JavaScript的21条基本知识点
2014/03/04 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
js老生常谈之this,constructor ,prototype全面解析
2016/04/05 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
ML神器:sklearn的快速使用及入门
2019/07/11 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
澳大利亚小众服装品牌:Maurie & Eve
2018/03/27 全球购物
你对IPv6了解程度
2016/02/09 面试题
vue+django实现下载文件的示例
2021/03/24 Vue.js
就业推荐自我鉴定
2013/10/06 职场文书
人事任命书范文
2014/06/04 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
新闻发布会活动策划方案
2014/09/15 职场文书
房屋维修协议书范本
2014/09/25 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
出生证明格式
2015/06/15 职场文书