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 模拟用户点击超链接或者按钮的方法
Oct 25 Javascript
Javascript控制input输入时间格式的方法
Jan 28 Javascript
jQuery实现行文字链接提示效果的方法
Mar 10 Javascript
Vue.js实现简单ToDoList 前期准备(一)
Dec 01 Javascript
js定时器实例分享
Dec 20 Javascript
Vue自定义指令拖拽功能示例
Feb 17 Javascript
Angular实现图片裁剪工具ngImgCrop实践
Aug 17 Javascript
ajax请求+vue.js渲染+页面加载的示例
Feb 11 Javascript
vue-router 中 meta的用法详解
Nov 01 Javascript
详解使用mocha对webpack打包的项目进行&quot;冒烟测试&quot;的大致流程
Apr 27 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
Jan 27 Vue.js
vue-cropper组件实现图片切割上传
May 27 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+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
PHP的简易冒泡法代码分享
2012/08/28 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
2014/11/17 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
js动态创建、删除表格示例代码
2013/08/07 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
详解nodejs微信公众号开发——1.接入微信公众号
2017/04/10 NodeJs
Node.js Express安装与使用教程
2018/05/11 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
js实现京东秒杀倒计时功能
2019/01/21 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
python retrying模块的使用方法详解
2019/09/25 Python
python命令 -u参数用法解析
2019/10/24 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
python中如何进行连乘计算
2020/05/28 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
Born鞋子官网:Born Shoes
2017/04/06 全球购物
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
CHARLES & KEITH台湾官网:新加坡时尚品牌
2019/07/30 全球购物
天鹅的故事教学反思
2014/02/04 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
端午节活动总结
2014/08/26 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书
MySQL 数据类型选择原则
2021/05/27 MySQL
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL
python的列表生成式,生成器和generator对象你了解吗
2022/03/16 Python