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

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

js中,exec()方法,為何這里的index是5?

js中,exec()方法,為何這里的index是5?

牧羊人nacy 2019-04-19 16:13:14
js高程里的例子(書中P107),不明白為何下面的第二次執(zhí)行,alert(matches.index)的值是5?為何alert(matches[0])是bat?應(yīng)該是我exex()方法沒理解透。vartext="cat,bat,sat,fat";varpattern1=/.at/g;varmatches=pattern1.exec(text);alert(matches.index);//0alert(matches[0]);//catalert(pattern1.lastIndex);//3----------matches=pattern1.exec(text);alert(matches.index);//5alert(matches[0]);//batalert(pattern1.lastIndex);//8搜索之后,"有g(shù)對(duì)exec本身的影響是,當(dāng)一個(gè)具有g(shù)的正則表達(dá)式調(diào)用exec()時(shí),他將該對(duì)象的lastIndex設(shè)置到緊接這匹配子串的字符位置.當(dāng)?shù)诙握{(diào)用exec時(shí)將從lastIndex所指示的字符位置開始檢索"看到這句話仍然沒能理解,為何輸出是5?
查看完整描述

2 回答

?
翻過高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

至于為什么是4和7,那就是因?yàn)?pre>
將該對(duì)象的lastIndex設(shè)置到緊接這匹配子串的字符位置.當(dāng)?shù)诙握{(diào)用exec時(shí)將從lastIndex所指示的字符位置開始檢索。
咱們按逗號(hào)之后不加空格來說:你看,第一次檢索出來的是cat,第一個(gè)字符的索引是0,所以result.index是0,而此時(shí)一個(gè)檢查字符串中每個(gè)字符的指針ptr已經(jīng)走到t后面了,所以lastIndex是3,就是相當(dāng)于告訴正則表達(dá)式,我們已經(jīng)檢查到索引為3的地方了,下一次直接從這里開始就好了。
第二次檢索從lastIndex也就是3開始,找到后面的bat之后,匹配成功,bat里第一個(gè)字符b是4,所以result.index是4,而我們匹配完整個(gè)bat的時(shí)候,指針ptr已經(jīng)走到bat后面了,也就是索引為7的位置,所以結(jié)果是4和7。
這樣你再開始下一次檢索的時(shí)候,就會(huì)從text[7]開始,也就是第二個(gè)逗號(hào)的位置開始往后找,所以下一次匹配是8,sat,11,再下次12,fat,15。
現(xiàn)在到頭了,再匹配一次的話就是null了,這時(shí)候你看看pattern1.lastIndex,已經(jīng)回到0了。
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-19
  • 2 回答
  • 0 關(guān)注
  • 578 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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