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不是基础的基础
Dec 24 Javascript
js禁止document element对象选中文本实现代码
Mar 21 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
Aug 02 Javascript
js获取当月最后一天实例代码
Nov 19 Javascript
JavaScript中九种常用排序算法
Sep 02 Javascript
自动完成的搜索框javascript实现
Feb 26 Javascript
Listloading.js移动端上拉下拉刷新组件
Aug 04 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
Nov 25 Javascript
jQuery焦点图轮播效果实现方法
Dec 19 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
Apr 13 jQuery
详解webpack loader和plugin编写
Oct 12 Javascript
浅谈vant组件Picker 选择器选单选问题
Nov 04 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
单位速度在实战中的运用
2020/03/04 星际争霸
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
vue-cli 如何打包上线的方法示例
2018/05/08 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
JS简单表单验证功能完整示例
2020/01/26 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
浅谈Python中copy()方法的使用
2015/05/21 Python
Python之os操作方法(详解)
2017/06/15 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
python 实现A*算法的示例代码
2018/08/13 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
html5 利用canvas手写签名并保存的实现方法
2018/07/12 HTML / CSS
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
判断单链表中是否存在环
2012/07/16 面试题
护理中职生求职信范文
2014/02/24 职场文书
平安建设实施方案
2014/03/19 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
初中生考试作弊检讨书
2014/12/14 职场文书
公司捐书倡议书
2015/04/27 职场文书
2015年小学体育工作总结
2015/05/22 职场文书