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 相关文章推荐
解决FireFox下[使用event很麻烦]的问题
Nov 26 Javascript
JS解密入门 最终变量劫持
Jun 25 Javascript
jquery中的事件处理详细介绍
Jun 24 Javascript
javascript中var的重要性分析
Feb 11 Javascript
JavaScript学习笔记整理_setTimeout的应用
Sep 19 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
Nov 09 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
Nov 25 Javascript
Angularjs中ng-repeat的简单实例
Aug 25 Javascript
JavaScript的词法结构精华篇
Oct 17 Javascript
深入浅析JavaScript中的in关键字和for-in循环
Apr 20 Javascript
原生js实现贪吃蛇游戏
Oct 26 Javascript
vue 中this.$set 动态绑定数据的案例讲解
Jan 29 Vue.js
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水印技术
2007/02/14 PHP
php获取后台Job管理的实现代码
2011/06/10 PHP
smarty半小时快速上手入门教程
2014/10/27 PHP
PHP制作百度词典查词采集器
2015/01/29 PHP
PHP统一页面编码避免乱码问题
2015/04/09 PHP
微信公众号开发客服接口实例代码
2016/10/21 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
js中function()使用方法
2013/12/24 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
2016/12/08 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
原生JS实现小小的音乐播放器
2017/10/16 Javascript
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
three.js加载obj模型的实例代码
2017/11/10 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
python 控制语句
2011/11/03 Python
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
Python处理JSON数据并生成条形图
2016/08/05 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
pycharm 关闭search everywhere的解决操作
2021/01/15 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
六道php面试题附答案
2014/06/05 面试题
仓库主管岗位职责
2014/03/02 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
变长双向rnn的正确使用姿势教学
2021/05/31 Python