亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

javascript 正則前瞻匹配如何理解?

javascript 正則前瞻匹配如何理解?

慕的地6264312 2019-04-13 08:45:15
前瞻匹配不好理解。具體的匹配過程是啥,請詳解。比如,如下的代碼運行結果,我就想不通啊。varreg=/[a-z]+(?!coder).*/g;'abcoder'.match(reg);//["abcoder"]varreg=/(?!coder)/g;'abcoder'.match(reg);//["","","","","","",""]'quip'.match(/q(?=u)i/);//null,why?
查看完整描述

2 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

'abcoder'.match(/[a-z]+(?!coder).*/g);
這句表示的是:[a-z]+匹配得到非coder結尾的最大的一個字符串,即abcoder,然后.*匹配后頭剩余的內容。你可以測試下這個例子,對這個解答有幫助'啦啦啦codeCODERcoder哈哈'.match(/[a-z]+(?!CODER).*/g)
'abcoder'.match(/(?!coder)/g);
零寬斷言表示的只是匹配的位置,由于你沒有在前面用字符提出匹配內容,所以匹配的所有結果都為空,但是因為g的原因會匹配7次(字符串的長度),所以會有7個空字符串。
'quip'.match(/q(?=u)i/);
這句表示的是:匹配u前面的q,同時這個q隨后應該是一個i。很明顯沒有這種情況的字符串,當然是null咯。
                            
查看完整回答
反對 回復 2019-04-13
  • 2 回答
  • 0 關注
  • 441 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號