第五课:字符串的扩展和修复

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_ 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(/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值