最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

1.repeat方法:將一個(gè)字符串重復(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來(lái)分隔類數(shù)組的選項(xiàng),類數(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,并且大寫)

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,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g,'&#39;');

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í)著兼容淘汰的瀏覽器呢。

相關(guān)文章

  • Js 代碼中,ajax請(qǐng)求地址后加隨機(jī)數(shù)防止瀏覽器緩存的原因

    Js 代碼中,ajax請(qǐng)求地址后加隨機(jī)數(shù)防止瀏覽器緩存的原因

    Js 代碼中,ajax請(qǐng)求地址后加隨機(jī)數(shù)防止瀏覽器緩存的原因,需要的朋友可以參考一下
    2013-05-05
  • Three光源Target位置改變光照方向不變的問(wèn)題解決方法

    Three光源Target位置改變光照方向不變的問(wèn)題解決方法

    這篇文章主要為大家介紹了Three光源Target位置改變光照方向不變的問(wèn)題及解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • JS小球拋物線軌跡運(yùn)動(dòng)的兩種實(shí)現(xiàn)方法詳解

    JS小球拋物線軌跡運(yùn)動(dòng)的兩種實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了JS小球拋物線軌跡運(yùn)動(dòng)的兩種實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了javascript實(shí)現(xiàn)小球拋物線運(yùn)動(dòng)的相關(guān)計(jì)算與圖形繪制操作技巧,需要的朋友可以參考下
    2017-12-12
  • JS實(shí)現(xiàn)超簡(jiǎn)單的漢字轉(zhuǎn)拼音功能示例

    JS實(shí)現(xiàn)超簡(jiǎn)單的漢字轉(zhuǎn)拼音功能示例

    這篇文章主要介紹了JS實(shí)現(xiàn)超簡(jiǎn)單的漢字轉(zhuǎn)拼音功能,結(jié)合實(shí)例形式分析了javascript漢字轉(zhuǎn)換成拼音的函數(shù)定義與使用技巧,需要的朋友可以參考下
    2016-12-12
  • 使用微信內(nèi)嵌H5網(wǎng)頁(yè)解決JS倒計(jì)時(shí)失效問(wèn)題

    使用微信內(nèi)嵌H5網(wǎng)頁(yè)解決JS倒計(jì)時(shí)失效問(wèn)題

    最近參考項(xiàng)目開(kāi)發(fā),遇到這樣一個(gè)需求將H5商城頁(yè)面嵌套到公司微信公眾號(hào)里,在開(kāi)發(fā)遇到一個(gè)棘手的問(wèn)題,js倒計(jì)時(shí)失效問(wèn)題,怎么回事呢?下面說(shuō)下我使用微信內(nèi)嵌h5解決的這一問(wèn)題,需要的朋友參考下吧
    2017-01-01
  • js實(shí)現(xiàn)前端界面導(dǎo)航欄下拉列表

    js實(shí)現(xiàn)前端界面導(dǎo)航欄下拉列表

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)前端界面導(dǎo)航欄下拉列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Worker加載JS腳本跨域問(wèn)題的幾種解決方法

    Worker加載JS腳本跨域問(wèn)題的幾種解決方法

    Web Worker 是一種在后臺(tái)線程中運(yùn)行的 JavaScript 腳本,允許我們?cè)诓蛔枞骶€程的情況下執(zhí)行復(fù)雜計(jì)算或處理,Worker 加載的 JS 腳本如果存在跨域問(wèn)題,可能導(dǎo)致腳本無(wú)法正常加載和執(zhí)行,以下是解決 Worker 加載 JS 腳本跨域問(wèn)題的幾種方法,需要的朋友可以參考下
    2025-02-02
  • JavaScript多種頁(yè)面刷新方法小結(jié)

    JavaScript多種頁(yè)面刷新方法小結(jié)

    這篇文章主要介紹了JavaScript多種頁(yè)面刷新方法小結(jié),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • JS如何生成隨機(jī)驗(yàn)證碼

    JS如何生成隨機(jī)驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了JS如何生成隨機(jī)驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • JavaScript是如何實(shí)現(xiàn)繼承的(六種方式)

    JavaScript是如何實(shí)現(xiàn)繼承的(六種方式)

    大多OO語(yǔ)言都支持兩種繼承方式: 接口繼承和實(shí)現(xiàn)繼承 ,而ECMAScript中無(wú)法實(shí)現(xiàn)接口繼承,ECMAScript只支持實(shí)現(xiàn)繼承,而且其實(shí)現(xiàn)繼承主要是依靠原型鏈來(lái)實(shí)現(xiàn),下文給大家技術(shù)js實(shí)現(xiàn)繼承的六種方式,需要的朋友參考下
    2016-03-03

最新評(píng)論

池州市| 开鲁县| 丹江口市| 呼玛县| 广平县| 青神县| 茂名市| 盈江县| 浦江县| 蒲江县| 柳林县| 黎川县| 贺州市| 溧阳市| 六安市| 济源市| 石泉县| 肥乡县| 饶河县| 乌拉特前旗| 抚顺县| 三河市| 肥东县| 汨罗市| 田东县| 绩溪县| 屯留县| 永德县| 天门市| 梧州市| 泰州市| 微博| 弥渡县| 临武县| 柳河县| 昔阳县| 元阳县| 虎林市| 湖南省| 临汾市| 太和县|