相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- 拉動懸浮于頂部的JS控制代碼
- 在JavaScript中構(gòu)建ArrayList示例代碼
- js使用for循環(huán)及if語句判斷多個一樣的name
- JavaScript中判斷原生函數(shù)檢查function是否是原生代碼
- jQuery CSS()方法改變現(xiàn)有的CSS樣式表
- JavaScript中判斷原生函數(shù)檢查function是否是原生代碼
- jQuery動畫高級用法(上)——詳解animation中的.queue()函數(shù)
- python小技巧之批量抓取美女圖片
- JS中offsetTop、clientTop、scrollTop、offsetTop各屬性介紹
- JS獲取瀏覽器窗口大小 獲取屏幕,瀏覽器,網(wǎng)頁高度寬度
javascript正則表達式高級篇
javascript正則表達式
通過上面基礎(chǔ)篇和中級篇的學習,我相信我們都能夠?qū)懗銎恋恼齽t了,但是一些特殊的功能也許還需要我們繼續(xù)往下學習這些高級篇的知識。
正則表達式的貪婪模式和懶惰模式:
貪婪模式和懶惰模式用言語很難講解清楚,我們這里使用例子的形式來進行講解,當然下面的一些知識也會以例子的形式來表達。
var regExp = /8.*8/;
var regExpTwo = /8.*?8/;
var str = "8google8 8google8 8google8";
var resultOne = regExp.exec(str); 此處的結(jié)果為google8 8google8 8google它盡量多的想要匹配得更多,所以為貪婪模式,其實是用了重復(區(qū)間)匹配的正則表達式都為貪婪模式;
var resultTwo = regExpTwo.exec(str); 此處的結(jié)果為google 它盡量少的匹配,所以為懶惰模式,在重復(區(qū)間)元素的后面加上?就變?yōu)橄鄳?yīng)的懶惰模式。
不在多說,相信你已經(jīng)能夠很好的理解正則表達式的貪婪和懶惰模式了。
正則表達式的兩條準則:
1,當正則表達式有嵌套的分組時,分組由外向內(nèi)。
2,正則表達式中的特殊元素匹配時需要加上\
前瞻模式:
前瞻模式是指某個匹配后面必須跟著某個字符串,例子如下:
var regExp = /goo(?=gle)/;
var strOne = google;
var strTwo = googoo;
當匹配第一個字符串時能匹配成功,而匹配第二個字符串時將匹配失敗,因為模式規(guī)定在goo后面必須要跟著gle,而且返回的結(jié)果為goo;
捕獲性分組和非捕獲性分組:
我們不做言語的講解直接上例子,例子如下:
var regExp = /(google)\s(2014)/;
var str = "google 2014";
regExp.exec(str); 此處獲得一個數(shù)組結(jié)果集,里面的元素分別為google 2014,google,2014;
如果regExp改為/(google)\s(?:2014)/,則數(shù)組中就只會包含兩個元素分別為google 2014,google
因為第二個分組為非捕獲性的分組
項目經(jīng)驗:
上面講解了一些特殊的正則表達式,也許在真正的項目中很少用到,但是掌握它們,能讓你的知識更加分豐富,遇到比較難的正則表達式不至于手足無措。