欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2014年12月02日 16:33:38   投稿:hebedich  
本文是司徒正美的《javascript框架設(shè)計(jì)》的第三章第一節(jié)的讀書筆記,簡單介紹了javascript字符串的擴(kuò)展和修復(fù),小伙伴們參考下吧

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

方法1:

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

function repeat(str,n){
  return Array.prototype.join.call({length:n+1},str); 
//在類數(shù)組{length:n+1}上下文下執(zhí)行join方法,并傳入str。也就是用str來分隔類數(shù)組的選項(xiàng),類數(shù)組是空,所以就有n個str分隔n+1個"",得到的結(jié)果就是n個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é)的長度:str.charCodeAt(i) >255 就把str的長度加一次就OK了.

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

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

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

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

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

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

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

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

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

str.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g,'&#39;');

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

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

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

相關(guān)文章

  • 原生JS實(shí)現(xiàn)九宮格抽獎

    原生JS實(shí)現(xiàn)九宮格抽獎

    這篇文章主要為大家詳細(xì)介紹了原生JS九宮格抽獎,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • js左側(cè)多級菜單動態(tài)的解決方案

    js左側(cè)多級菜單動態(tài)的解決方案

    實(shí)現(xiàn)的效果很簡單,就是點(diǎn)一下顯示,再點(diǎn)一下就隱藏,只不過是多了幾級的問題。好,現(xiàn)在來說說我的設(shè)計(jì)思路,首先從第一級別開始,添加如下代碼
    2010-02-02
  • Javascript 錯誤處理的幾種方法

    Javascript 錯誤處理的幾種方法

    瀏覽器不會拋出Error類型的exception異常,所以如果捕獲到Error類型的異常,可以確定這個異常是用戶代碼拋出的,不是瀏覽器拋出的。
    2009-06-06
  • js控制div彈出層實(shí)現(xiàn)方法

    js控制div彈出層實(shí)現(xiàn)方法

    這篇文章主要介紹了js控制div彈出層實(shí)現(xiàn)方法,可實(shí)現(xiàn)點(diǎn)擊鏈接彈出div浮動層,且背景色變暗的效果,是一款非常實(shí)用的特效源碼,需要的朋友可以參考下
    2015-05-05
  • js實(shí)現(xiàn)拖動滑塊效果

    js實(shí)現(xiàn)拖動滑塊效果

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)拖動滑塊效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 詳解JavaScript中關(guān)于this指向的4種情況

    詳解JavaScript中關(guān)于this指向的4種情況

    這篇文章主要介紹了JavaScript中關(guān)于this指向的4種情況,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 使用JavaScript實(shí)現(xiàn)一個交互式音樂播放器

    使用JavaScript實(shí)現(xiàn)一個交互式音樂播放器

    JavaScript,作為前端開發(fā)的重要語言,可以實(shí)現(xiàn)許多復(fù)雜的功能,在這篇文章中,我們將一起創(chuàng)建一個交互式的音樂播放器,快跟隨小編一起學(xué)習(xí)一下吧
    2024-01-01
  • 詳解JavaScript對象序列化

    詳解JavaScript對象序列化

    這篇文章主要為大家介紹了JavaScript對象序列化的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • 微信小程序 wxParse插件顯示視頻問題

    微信小程序 wxParse插件顯示視頻問題

    這篇文章主要介紹了微信小程序 wxParse插件顯示視頻問題,文中給大家提到了微信小程序插件wxParse的使用,需要的朋友可以參考下
    2019-09-09
  • 通過JS運(yùn)行機(jī)制的角度說說作用域

    通過JS運(yùn)行機(jī)制的角度說說作用域

    這篇文章主要給大家介紹了如何通過JS運(yùn)行機(jī)制的角度說說作用域的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用JS作用域具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論