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 相关文章推荐
淘宝搜索框效果实现分析
Mar 05 Javascript
jQuery中delegate与on的用法与区别示例介绍
Dec 20 Javascript
JS实现文字放大效果的方法
Mar 03 Javascript
JS实用的动画弹出层效果实例
May 05 Javascript
jQuery+Pdo编写login登陆界面
Aug 01 Javascript
js 只比较时间大小的实例
Oct 26 Javascript
详解如何使用webpack在vue项目中写jsx语法
Nov 08 Javascript
微信小程序实战篇之购物车的实现代码示例
Nov 30 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
Mar 06 Javascript
Vue.js 动态为img的src赋值方法
Mar 14 Javascript
使用flow来规范javascript的变量类型
Sep 12 Javascript
JS实现简单tab选项卡切换
Oct 25 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中echo,print_r与var_dump区别分析
2014/09/29 PHP
php自定义hash函数实例
2015/05/05 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
php中final关键字用法分析
2016/12/07 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
疯掉了,尽然有js写的操作系统
2007/04/23 Javascript
javascript 清除输入框中的数据
2009/04/13 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
javascript中怎么做对象的类型判断
2013/11/11 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
JavaScript实现瀑布流布局
2020/06/28 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
nodejs调取微信收货地址的方法
2017/12/20 NodeJs
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
使用Scrapy爬取动态数据
2018/10/21 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
Python 在函数上添加包装器
2020/07/28 Python
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2015年少先队活动总结
2015/03/25 职场文书
婚礼答谢词范文
2015/09/29 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python