亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 瀏覽器中的正則表達式陷阱說明

瀏覽器中的正則表達式陷阱說明

熱門標簽:浙江營銷外呼系統有哪些 惠安地圖標注 淄博市張店區地圖標注 遼寧秒客來電話機器人 上海銷售電銷機器人軟件 地圖標注店鋪地圖標注酒店 自己做的電銷機器人 哈爾濱公司外呼系統代理 山東外呼系統聯系方式

在本章開始前 我要引入一個例子 來說明這種不徹底的 變態的優化 到底合理還是不合理...

c# 中的 字符串直接量 做的優化 就非常徹底...這種優化我們應該是歡迎的...

 string str="franky";

string str2="franky";

在內存中 只有一份 字符串對象 而str和str2 具備相同的一份引用. 很明顯 這非常合理.

string n = "franky",  n2 = "franky";
Response.Write((Object.ReferenceEquals(n,n2)).ToString());//True.

那么 一些特殊情況下  有些瀏覽器 為正則表達式直接量也做了類似的優化.

alert(/\d/==/\d/);//所有瀏覽器都是false 這很合理 因為正則表達式直接量 同 [] 數組直接量 {}對象直接量一樣 都是引用類型 

我們再看看哪些情況下哪些瀏覽器做了優化

    function f2() {
        return /\d/;
    }

       alert(f2() == f2());

//這里的結果就有不同了

ie6 7 8  opear10 safari4 都返回false  (我虛擬機里safari3壞了沒做測試.如果誰有 幫忙測下告訴我結果.謝謝 我估計safari3 會返回true.原因是 maxthon3用的引擎貌似就是safari3 的) 

但是

firefox 2.0 3.0+ 3.5 3.6  chrome 4 5 opear9  maxthon3 demo版  使用webkit引擎下 都返回true

有趣的地方在于 opera9 做了優化 而opera10 取消了這種優化. 看來至少opera團隊認為這種優化時不恰當的...(變相支持了我的觀點.)

 

看到這里 你也許會奇怪 是不是 bug而不是所謂優化啊? 也許是閉包對象 出了什么問題或者 是 函數對象上的某些bug引起的?

那么我們看看下面的例子:

for (var i = 0; i 10; i++) document.writeln(/\d/g.test('' + i));

不同瀏覽器 輸出結果的 差異 完全符合上面 是否做優化的分類.

即沒有 做優化的瀏覽器 一律返回true 而作了優化的瀏覽器 則是 true false true false 交替的結果.

我們這里只是一個 循環 ..js中的循環沒有獨立的作用域 更不會產生閉包對象 那么可以肯定 引起這個怪異問題的 根本原因就是某些瀏覽器自作聰明的優化.

可能大家不太理解 test的結果 差異來自哪里...  答案是 test 同 exec 一樣 如果 直接量后面有/g  .設置了 global全局查找參數 的話 那么 同一個test對象 會記錄上次 匹配字符的索引位置.下次再 匹配時 會從這個位置開始..如果沒有 則 匹配索引0 下次在此匹配時 就仍然從0位置字符開始.

所以上面這個測試 使用 exec 也是可以的.

那么 這里 如何避免瀏覽器差異呢? 簡單的辦法 去掉/g即可

這里我們為了躲避陷阱 就要 記得一個約定.  請盡量不要使用 一個正則直接量 在函數體內 或 循環內. 如果一定要如此 請使用new RegExp('\d',g);這種.

對于exec 盡量用 string.match代替. 因為match 強制你依靠是否有 /g 來全局查找..不會產生歧義.

對于test 如果是循環內 也可以考慮  var reg=/\d/; //這里要吧/g去掉..請不要忘記哦

for (var i = 0; i 10; i++) document.writeln(reg.test('' + i));

事實上這樣用是最合理的辦法 .原因是 這里我們只產生一個正則對象 并反復使用他.. 本質上也是為了優化。但是我們避開了 瀏覽器自己的優化差異 導致的不同結果.

最后我們發現 所謂陷阱 發生主要是 /g使用不當.無論是 exec 還是test都是如此  如果合理使用/g 無論瀏覽器是否存在變態的優化. 執行結果都將是正確的...唯一的區別 只在于 做了優化的瀏覽器 不需要反復產生一個 正則對象然后再垃圾回收 再產生一個正則對象....如此反復而已...

那么我們發現 遵守上面幾個原則的話 這種問題 也都避免了...

標簽:無錫 西安 長沙 重慶 泰州 銅川 宣城 綿陽

巨人網絡通訊聲明:本文標題《瀏覽器中的正則表達式陷阱說明》,本文關鍵詞  瀏覽器,中的,正則,表達式,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《瀏覽器中的正則表達式陷阱說明》相關的同類信息!
  • 本頁收集關于瀏覽器中的正則表達式陷阱說明的相關信息資訊供網民參考!
  • 推薦文章
    国产伦久视频免费观看 视频| 精品国产香蕉伊思人在线又爽又黄| 日本伦理片网站| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 午夜在线影院| 精品视频在线观看免费 | 免费毛片播放| 久草免费资源| 日本特黄特黄aaaaa大片| 国产一级生活片| 国产激情视频在线观看| 麻豆污视频| 国产视频一区二区在线观看| 天天做日日爱| 天天做日日爱夜夜爽| 99色视频在线| 91麻豆精品国产自产在线观看一区 | 四虎影视久久久免费| 欧美电影免费看大全| 欧美另类videosbestsex| 午夜在线影院| 韩国毛片 免费| 久久精品成人一区二区三区| 一本伊大人香蕉高清在线观看| 国产不卡在线看| 精品国产香蕉伊思人在线又爽又黄| 中文字幕97| 91麻豆国产| 一级片片| 精品视频在线观看免费 | 成人影视在线播放| 国产一区精品| 中文字幕97| 在线观看成人网| 久久久成人网| 九九免费高清在线观看视频| 九九久久99| 日本在线播放一区| 999精品在线| 亚洲不卡一区二区三区在线| 一级毛片看真人在线视频| 美国一区二区三区| 亚欧乱色一区二区三区| 天天做人人爱夜夜爽2020毛片| 国产美女在线观看| 午夜家庭影院| 国产视频在线免费观看| 精品久久久久久免费影院| 久久99中文字幕| 天天色色网| 欧美一级视| 91麻豆精品国产自产在线观看一区 | 九九九国产| 在线观看成人网| 青青久热| 免费毛片播放| 午夜在线观看视频免费 成人| 91麻豆精品国产片在线观看| 日韩字幕在线| 精品国产亚一区二区三区| 欧美激情一区二区三区视频 | 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 欧美国产日韩精品| 久久成人综合网| 久久福利影视| 国产网站免费观看| 美国一区二区三区| 亚洲第一视频在线播放| 沈樵在线观看福利| 久久成人综合网| 日本特黄特黄aaaaa大片| 国产精品免费久久| 国产伦精品一区二区三区在线观看 | 韩国毛片免费大片| 久久精品成人一区二区三区| 日本免费乱人伦在线观看| 99色视频| 亚洲第一页乱| 色综合久久天天综线观看| 日本在线www| 四虎影视精品永久免费网站| 国产一区二区精品| 日日日夜夜操| 精品毛片视频| 成人免费观看视频| 国产一区二区精品久久| 精品久久久久久影院免费| 韩国毛片免费| 日韩av片免费播放| 精品国产一区二区三区久久久狼| 欧美激情一区二区三区在线| 999精品视频在线| 精品久久久久久影院免费| 高清一级毛片一本到免费观看| 欧美激情一区二区三区在线播放 | 精品国产一区二区三区国产馆| 国产麻豆精品高清在线播放| 亚洲精品影院| 欧美大片一区| 四虎影视精品永久免费网站| 中文字幕97| 国产精品免费精品自在线观看| 国产视频在线免费观看| 日韩一级黄色大片| 久久99中文字幕久久| 欧美大片一区| 精品视频在线观看视频免费视频 | 久久成人综合网| 青青久热| 久久国产一久久高清| 色综合久久手机在线| 一级毛片视频播放| 国产综合91天堂亚洲国产| 可以免费看毛片的网站| 国产网站免费| 久草免费资源| 日韩男人天堂| 青青久久精品| 一级毛片看真人在线视频| 日本特黄特色aaa大片免费| 国产美女在线一区二区三区| 精品国产亚一区二区三区| 精品视频在线观看免费 | 精品国产一级毛片| 成人免费网站久久久| 九九国产| 国产麻豆精品| 可以免费在线看黄的网站| 一级女性全黄久久生活片| 久久精品成人一区二区三区| 国产国语对白一级毛片| 国产a一级| 美女免费精品高清毛片在线视| 麻豆系列 在线视频| 99色视频| 日韩av片免费播放| 精品毛片视频| 国产a视频| 国产亚洲精品aaa大片| 国产精品1024永久免费视频| 深夜做爰性大片中文| 精品国产一区二区三区国产馆| 可以在线看黄的网站| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 免费一级片网站| 欧美另类videosbestsex久久| 日韩免费在线| 国产视频一区在线| 欧美1区2区3区| 国产一区二区高清视频| 午夜在线亚洲男人午在线| 四虎影视精品永久免费网站| 日韩免费在线| 亚洲精品影院| 久久国产一久久高清| 一级女性全黄久久生活片| 国产不卡在线观看视频| 日本在线不卡视频| 国产精品12| 毛片高清| 日韩一级精品视频在线观看| 国产成人啪精品视频免费软件| a级毛片免费观看网站| 四虎久久精品国产| 国产视频在线免费观看| 日本在线www| 免费毛片播放| 国产麻豆精品hdvideoss| 日本免费乱理伦片在线观看2018| 亚久久伊人精品青青草原2020| 一级毛片视频播放| 精品视频一区二区| 二级片在线观看| 精品国产一区二区三区国产馆| 午夜家庭影院| 国产一区二区福利久久| 国产精品自拍一区| 国产伦久视频免费观看 视频| 九九国产| 青青青草影院| 国产一区二区精品尤物| 国产a毛片| 青青久久国产成人免费网站| 九九九在线视频| 久久精品免视看国产明星 | 九九精品在线播放| 精品视频在线看 | 精品毛片视频| 99久久精品国产高清一区二区| 成人高清免费| 亚久久伊人精品青青草原2020| 韩国三级视频网站| 久久国产一久久高清| 国产麻豆精品hdvideoss| 成人a级高清视频在线观看| 久久99中文字幕久久| 可以免费看污视频的网站| 九九精品久久久久久久久| a级黄色毛片免费播放视频| 国产极品白嫩美女在线观看看|