第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JS正則使用正則表達式字面量和使用 RegExp 構(gòu)造函數(shù)創(chuàng)建的正則表達式有什么不一樣?

JS正則使用正則表達式字面量和使用 RegExp 構(gòu)造函數(shù)創(chuàng)建的正則表達式有什么不一樣?

繁星coding 2019-03-14 18:15:53
下面的內(nèi)容摘自某書使用正則表達式字面量和使用 RegExp 構(gòu)造函數(shù)創(chuàng)建的正則表達式不一樣。在 ECMAScript 3 中, 正則表達式字面量始終會共享同一個RegExp實例,而使用構(gòu)造函數(shù)創(chuàng)建的每一個新RegExp實例都是一個新實例。來看下面的例子。var re = null,        i;for (i=0; i < 10; i++){    re = /cat/g;    re.test("catastrophe");}for (i=0; i < 10; i++){    re = new RegExp("cat", "g");    re.test("catastrophe");}在第一個循環(huán)中,即使是循環(huán)體中指定的,但實際上只為 /cat/ 創(chuàng)建了一個 RegExp 實例。由于實例屬性不會重置,所以在循環(huán)中再次調(diào)用 test() 方法會失敗。這是因為第一次調(diào)用 test() 找到了"cat",但第二次調(diào)用是從索引為 3 的字符(上一次匹配的末尾)開始的,所以就找不到它了。由于會測試到字符串末尾,所以下一次再調(diào)用 test()就又從開頭開始了。第二個循環(huán)使用 RegExp 構(gòu)造函數(shù)在每次循環(huán)中創(chuàng)建正則表達式。因為每次迭代都會創(chuàng)建一個新的 RegExp 實例,所以每次調(diào)用 test()都會返回 true。沒能看懂,我測試了下兩種方式來測試,都是返回了10次 true 啊如果放開ES5標(biāo)準(zhǔn)不說,假如是ES3的話是不是說第一種情況是5次,第二種情況是10次呢?var re = null,    b  = 0,    c  = 0,    tmp,    i;for (i=0; i < 10; i++){    re = /cat/g;    tmp = re.test("catastrophe");    console.log(tmp);    if(tmp){        b++ ;    }}for (i=0; i < 10; i++){    re = new RegExp("cat", "g");    tmp = re.test("catastrophe");    console.log(tmp);    if(tmp){        c++;    }}console.log(b,c);
查看完整描述

2 回答

?
隔江千里

TA貢獻1906條經(jīng)驗 獲得超10個贊

因為現(xiàn)在要看ECMA5.1了,標(biāo)準(zhǔn)中明確指出

A regular expression literal is an input element that is converted to a RegExp object (see 15.10) each time the literal is evaluated. Two regular expression literals in a program evaluate to regular expression objects that never compare as === to each other even if the two literals' contents are identical.

正則表達式字面量每次被計算時都會被轉(zhuǎn)換成一個正則對象,即使內(nèi)容一致,這些對象也并不相同


查看完整回答
反對 回復(fù) 2019-04-13
  • 2 回答
  • 0 關(guān)注
  • 761 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號