JavaScript正則表達(dá)式的貪婪匹配和非貪婪匹配
所謂貪婪匹配就是匹配重復(fù)字符是盡可能多的匹配,比如:
"aaaaa".match(/a+/); //["aaaaa", index: 0, input: "aaaaa"]
非貪婪匹配就是盡可能少的匹配,用法就是在量詞后面加上一個(gè)“?”,比如:
"aaaaa".match(/a+?/); //["a", index: 0, input: "aaaaa"]
但是非貪婪匹配有時(shí)候和我們期待的并不一樣,比如:
"aaab".match(/a+b/); ["aaab", index: 0, input: "aaab"] "aaab".match(/a+?b/); ["aaab", index: 0, input: "aaab"]
在我們期待的情況下非貪婪匹配應(yīng)該是匹配"ab"才對(duì)但是結(jié)果卻和貪婪匹配時(shí)一樣的。
在《權(quán)威指南》中有這么一句話:正則表達(dá)式的模式匹配總是會(huì)尋找字符串中第一個(gè)可能匹配的位置。
個(gè)人對(duì)這句話的理解是:上例中正則表達(dá)式會(huì)先找到第一個(gè)字符a,因?yàn)閍后面連接的字符有可能形成匹配,這是正則表達(dá)式就認(rèn)定這個(gè)位置的字符了,然后開(kāi)始往后進(jìn)行匹配,如果像第一個(gè)例子中那樣非貪婪匹配,匹配到第一個(gè)a就結(jié)束了,但是第二個(gè)例子中還要匹配b所以不得不接著往下匹配直到匹配到b為止結(jié)束。
總結(jié)
以上所述是小編給大家介紹的JavaScript正則表達(dá)式的貪婪匹配和非貪婪匹配,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
詳解webpack-dev-server 設(shè)置反向代理解決跨域問(wèn)題
后端只負(fù)責(zé)接口,前端負(fù)責(zé)數(shù)據(jù)展示、邏輯處理。那么如何跨域?這篇文章主要介紹了webpack-dev-server 設(shè)置反向代理解決跨域問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
微信小程序網(wǎng)絡(luò)請(qǐng)求模塊封裝的具體實(shí)現(xiàn)
大家做小程序項(xiàng)目的時(shí)候肯定會(huì)遇到數(shù)據(jù)對(duì)接需求,下面這篇文章主要給大家介紹了關(guān)于微信小程序網(wǎng)絡(luò)請(qǐng)求模塊封裝的具體實(shí)現(xiàn),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
JS數(shù)組循環(huán)的方式以及效率分析對(duì)比
本文詳細(xì)講解了JS數(shù)組循環(huán)的方式以及效率分析對(duì)比,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-11-11
鼠標(biāo)拖動(dòng)動(dòng)態(tài)改變表格的寬度的js腳本 兼容ie/firefox
table拖動(dòng)(兼容Firefox 3.5/IE6),固定表格寬度在網(wǎng)上搜索了好久,找到的都是只能在IE下有效的,后來(lái)終于找到了支持firefox的了。2009-12-12
JavaScript實(shí)現(xiàn)九宮格移動(dòng)拼圖游戲
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)九宮格移動(dòng)拼圖游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
JavaScript學(xué)習(xí)筆記(三):JavaScript也有入口Main函數(shù)
大家都知道在c和java中,有main函數(shù)貨main方法作為一個(gè)程序的入口函數(shù)或方法。在JS中從js源文件的頭部開(kāi)始運(yùn)行的,我們?nèi)匀豢梢蕴摌?gòu)出一個(gè)main函數(shù)來(lái)作為程序的起點(diǎn),這樣一來(lái)不僅可以跟其他語(yǔ)言統(tǒng)一了,而且說(shuō)不定你會(huì)對(duì)JS有更深的理解。感興趣的小伙跟著小編一起學(xué)習(xí)吧2015-09-09
js中textContent、innerText和innerHTML的用法以及區(qū)別
這篇文章主要介紹了JavaScript中textContent、innerText和innerHTML的用法以及區(qū)別,需要的朋友可以參考下2023-05-05
JavaScript中的property和attribute介紹
JavaScript中的property和attribute介紹,需要的朋友可以參考下。2011-12-12

