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 相关文章推荐
JQuery 无废话系列教程(一) jquery入门 [推荐]
Jun 23 Javascript
Jquery命名冲突解决的五种方案分享
Mar 16 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
Aug 18 Javascript
JS常用函数使用指南
Nov 23 Javascript
easyUI combobox实现联动效果
Jan 17 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
Feb 21 Javascript
[js高手之路]原型式继承与寄生式继承详解
Aug 28 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
Dec 29 Javascript
vue+element实现批量删除功能的示例
Feb 28 Javascript
JS实现带阴历的日历功能详解
Jan 24 Javascript
微信小程序实现点击效果
Jun 21 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
Jul 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
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
Yii2使用表单上传文件的实例代码
2017/08/03 PHP
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
鼠标滚轮控制网页横向移动实现思路
2013/03/22 Javascript
javascript实现颜色渐变的方法
2013/10/30 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
javaScript中的原型解析【推荐】
2016/05/05 Javascript
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
nodejs 生成和导出 word的实例代码
2018/07/31 NodeJs
vue中的计算属性实例详解
2018/09/19 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
[01:06:43]完美世界DOTA2联赛PWL S3 PXG vs GXR 第二场 12.19
2020/12/24 DOTA
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
用Python实现协同过滤的教程
2015/04/08 Python
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
使用C++扩展Python的功能详解
2018/01/12 Python
详解Python 正则表达式模块
2018/11/05 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
用 Python 制作地球仪的方法
2020/04/24 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
ASP.NET Core中的配置详解
2021/02/05 Python
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
中学实习教师自我鉴定
2013/12/12 职场文书
养牛场项目建议书
2014/05/13 职场文书
党员民主评议总结
2014/10/20 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
开票证明
2015/06/23 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python