国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

javascript框架設(shè)計(jì)讀書(shū)筆記之字符串的擴(kuò)展和修復(fù)

2019-11-20 13:50:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1.repeat方法:將一個(gè)字符串重復(fù)自身n次。比如:repeat("chaojidan",2)   -> chaojidanchaojidan

方法1:

復(fù)制代碼 代碼如下:

function repeat(str,n){
  return Array.prototype.join.call({length:n+1},str); 
//在類(lèi)數(shù)組{length:n+1}上下文下執(zhí)行join方法,并傳入str。也就是用str來(lái)分隔類(lèi)數(shù)組的選項(xiàng),類(lèi)數(shù)組是空,所以就有n個(gè)str分隔n+1個(gè)"",得到的結(jié)果就是n個(gè)str連接。
}

方法2:

復(fù)制代碼 代碼如下:

function repeat(str,n){
  var s = str ,total = "";
  while(n>0){             
//假設(shè)n是5,n%2后,等于1,因此total = str.s=strstr。n=2.第二次循環(huán):s=strstrstrstr,n=1.第三次循環(huán)total = strstrstrstrstr,break,跳出循環(huán),返回total,剛好是str重復(fù)了5次的字符串
    if(n%2 ==1){    
      total + =s;     //這里是2的0次方,也就是1,所有的正整數(shù),都可以使用1,2,4,8....進(jìn)行組合。比如: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.取字符串所有字節(jié)的長(zhǎng)度:str.charCodeAt(i) >255 就把str的長(zhǎng)度加一次就OK了.

3.轉(zhuǎn)換駝峰風(fēng)格:str.replace(/[-_][^-_]/g,function(match){return match.charAt(1).toUpperCase();}) 

//-_在[]中,不需要使用/,并且^在[]中是代表反的意思,就是遇到-a或_a,就被替換成A(match就是正則匹配的字符串_a,然后取a,并且大寫(xiě))

4.轉(zhuǎn)換為下劃線風(fēng)格:str.replace(/([a-z/d])([A-Z])/g,'$1_$2').replace(//-/g,'_').toLowerCase();

//第一個(gè)replace,匹配cA,或者4A的字符串,然后用c_A或4_A替換。$1代表第一個(gè)子表達(dá)式。第二個(gè)replace就是使用_替換-。由于-不在[]中,所以需要加/。

5.去掉字符串中的html標(biāo)簽:str.replace(/<[^>]+>/g,''),這里面會(huì)把script標(biāo)簽去掉,但是不會(huì)去掉script中的js腳本

6.去掉script標(biāo)簽,并且移除里面的js腳本:str.replace(/<script[^>]*>(/S/s)*?)<//script>/img,'')     

 /需要用/,防止轉(zhuǎn)義。

//(/S/s)*?)盡可能少的匹配,非貪婪匹配。舉個(gè)例子:<script>aaa</script>dddd<script>bbbb</script>,會(huì)先匹配<script>aaa</script>,再匹配<script>bbbb</script>,如果沒(méi)加?,將是貪婪匹配,將會(huì)把<script>aaa</script>dddd<script>bbbb</script>全部匹配掉,連字符串dddd都去掉了。

7.將字符串經(jīng)過(guò)html轉(zhuǎn)義,得到適合在頁(yè)面中顯示的內(nèi)容.

str.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"').replace(/'/g,''');

8.將字符串的html實(shí)體字符換成對(duì)應(yīng)字符:

跟7相反,只是多了一個(gè)replace(/&#([/d]+);/g,function($0,$1){  return String.fromCharCode(parseInt($1,10))  })   //$1就是第一個(gè)子表達(dá)式匹配項(xiàng)。

9.trim:str.replace(/^/s+ | /s+$/g,'')   ,IE或早期的標(biāo)準(zhǔn)瀏覽器,把許多本屬于空白的字符沒(méi)有列為/s中,因此會(huì)有bug。不過(guò),又何必執(zhí)著兼容淘汰的瀏覽器呢。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 山西省| 铁力市| 安化县| 武宁县| 会理县| 大悟县| 双辽市| 平定县| 卢氏县| 侯马市| 东山县| 邮箱| 台东市| 遂昌县| 双鸭山市| 保德县| 潞西市| 平邑县| 宁武县| 平阳县| 锦屏县| 灵丘县| 固安县| 建湖县| 沾化县| 祁门县| 滦平县| 萝北县| 上高县| 老河口市| 玉溪市| 松潘县| 济宁市| 临泉县| 五家渠市| 涪陵区| 绥阳县| 临沂市| 徐汇区| 宽甸| 高陵县|