天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

javascript之更有效率的字符串替換

首先看看原來(lái)是怎么樣做的:
復(fù)制代碼 代碼如下:
function toTXT(str){ 
    str = str.replace(//&/g, "& amp;"); 
    str = str.replace(//>/g, "& gt;"); 
    str = str.replace(//</g, "& lt;"); 
    str = str.replace(//"/g, "& quot;"); 
    str = str.replace(//'/g, "& #39;"); 
    return str; 

[/code
分析:上面的方法是用來(lái)替換過(guò)濾字符串的HTML代碼的,一直認(rèn)為這樣做很沒(méi)效率,因?yàn)橐堰@個(gè)字符串進(jìn)行5次全文匹配(不是數(shù)據(jù)庫(kù)中的全文檢索),有沒(méi)方法只使用一次全文匹配,就可以替換掉不同的字符串為不同的結(jié)果呢?

呵呵,終于找到了下面的這個(gè)方法:

[code]
function toTXT(str){ 
    var RexStr = //<|/>|/"|/'|/&/g 
    str = str.replace(RexStr, 
        function(MatchStr){ 
            switch(MatchStr){ 
                case "<": 
                    return "& lt;"; 
                    break; 
                case ">": 
                    return "& gt;"; 
                    break; 
                case "/"": 
                    return "& quot;"; 
                    break; 
                case "'": 
                    return "& #39;"; 
                    break; 
                case "&": 
                    return "& amp;"; 
                    break; 
                default : 
                    break; 
            } 
        } 
    ) 
    return str; 




看上去要比第一個(gè)方法要復(fù)雜一些,寫(xiě)的代碼也要多一點(diǎn)點(diǎn),不過(guò)呢,只用一次,就可以替換整個(gè)字符串里面的匹配字符為不同的結(jié)果,非常有效率的。而且代碼看上去也很直觀,修改方便。

更重要的是第一個(gè)方法假如要替換"&"一定要放在最前面,而后面的方面完全不用擔(dān)心這個(gè)問(wèn)題。

JavaScript還有很多鮮為人知的用法,而且很多思想在別的語(yǔ)言里面都沒(méi)有。就算Java再怎么強(qiáng)大,他的正則表達(dá)式卻在JDK1.4里面才引入,落后了很多。不過(guò)我沒(méi)說(shuō)Java就一定比JS差只類的話啊。

JS的應(yīng)用范圍絕對(duì)不止HTML,還有很多其他的方面都在使用他,比如WebFT(測(cè)試網(wǎng)站的工具),.NET等,并且在即將發(fā)布,傳說(shuō)中“FLASH殺手”――WPF/E(Windows Presentation Foundation/Everywhere)出現(xiàn)后,JS的應(yīng)用范圍更加寬廣。

很多人都不屑于JS,認(rèn)為他很低級(jí),連基本的對(duì)象類型都沒(méi)有。NO,錯(cuò)了,在.NET里面,也就是Jscript.NET中,微軟將JS的版本提升為8.0,基本上他已經(jīng)與C#沒(méi)有任何差別,所有程序語(yǔ)言該有的他都具備了。

說(shuō)一個(gè)笑話,我寫(xiě).NETASP就用的Jscript,但是VB和C#我也并不是屬于那種泛泛而談的類型,只是我覺(jué)得假如可以用一門(mén)語(yǔ)言從后寫(xiě)到前,包括他的周邊項(xiàng)目,那將是一件非常愜意的事情。從此再也不會(huì)在多種語(yǔ)言中轉(zhuǎn)來(lái)轉(zhuǎn)去了。
來(lái)看看WPF/E(Windows Presentation Foundation/Everywhere)的威力:
2005年的PDC大會(huì)上,微軟介紹了一項(xiàng)名為WPF/E(Windows Presentation Foundation/Everywhere)的技術(shù),在自己的MIX'06會(huì)議上又展示了新的特色。WPF/E依賴XAML和JavaScript來(lái)制作網(wǎng)頁(yè),它也帶有跨平臺(tái)工具,支持CLR、.NET、C#、VB.NET等的代碼,實(shí)質(zhì)上,它是一個(gè)與目前屬于Adobe的Flash很類似的工具。

微軟的程序員Mike Harsh曾經(jīng)說(shuō)過(guò):“沒(méi)錯(cuò),我們正將C#帶入Mac.”

雖然被大家認(rèn)為是“Flash殺手”,不過(guò)微軟的目標(biāo)更遠(yuǎn)大一點(diǎn):讓用戶不僅在桌面系統(tǒng)上使用微軟的軟件和技術(shù),他們同樣要占領(lǐng)網(wǎng)絡(luò)移動(dòng)設(shè)備。

“實(shí)質(zhì)上,WPF/E根本不是一個(gè)照搬的作品,它為開(kāi)發(fā)者、設(shè)計(jì)師、技術(shù)員提供了一個(gè)綜合性的開(kāi)發(fā)設(shè)計(jì)平臺(tái)。”開(kāi)發(fā)者Joe Stegman說(shuō),“它能良好地與微軟的其他產(chǎn)品結(jié)合,這一點(diǎn)是Flash平臺(tái)望塵莫及的。”Stegman表示他們一直在很努力地進(jìn)行WPF/E開(kāi)發(fā)工作,已經(jīng)發(fā)行了好幾個(gè)內(nèi)部版本,用戶體驗(yàn)版在不久之后也會(huì)放出。

雖然現(xiàn)在Flash風(fēng)光無(wú)限,有人可能認(rèn)為微軟的WPF/E沒(méi)法超越Flash,不過(guò)想想多年以前網(wǎng)景的NETscape……

圖為在瀏覽器中演示的矢量圖形,可以隨意對(duì)圖形進(jìn)行縮放、旋轉(zhuǎn)

JavaScript技術(shù)javascript之更有效率的字符串替換,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 日韩精品专区在线影院重磅 | 日韩性大片 | 抽插性奴中出乳精内射 | 国产成人亚洲精品老王 | 敌伦小芳的第一次 | 久久影院毛片一区二区 | 99热这里只有精品 | 中国国产不卡视频在线观看 | 欧美国产在线一区 | 欲插爽乱浪伦骨 | 日本又黄又裸一级大黄裸片 | 午夜理伦大片一级 | 色综合久久综合网观看 | 美美哒高清在线播放8 | 久久成人国产精品一区二区 | yellow日本动漫观看免费 | 一二三四电影完整版免费观看 | 97精品伊人久久大香线蕉app | 色婷婷综合激情中文在线 | 特级毛片全部免费播放免下载 | a久久99精品久久久久久蜜芽 | 亚州AV中文无码乱人伦在线 | 99视频精品免视3 | 特黄特色大片免费播放器试看 | 狠狠婷婷综合久久久久久 | 国产精品视频免费视频 | 国产亚洲精品视频亚洲香蕉视 | 久久99精品国产自在自线 | 蜜芽无码亚洲资源网站 | 国产99九九久久无码熟妇 | 午夜精品久久久久久影视riav | 在线亚洲精品国产一区麻豆 | 女性露出奶头流出精子 | 国产自产第一区c国产 | 亚洲乱码AV久久久久久久 | 日韩hd高清xxxⅹ | 最近免费中文字幕完整版HD | 精品网站一区二区三区网站 | 国产AV国片精品无套内谢无码 | 亚洲精品自在线拍2019 | 中文字幕乱码一区久久麻豆樱花 |