人人人妻人人人妻人人人,99精品国产综合久久久久五月天 ,欧美白人最猛性XXXXX,日韩AV无码免费播放

News新聞

業(yè)界新聞動態(tài)、技術(shù)前沿
Who are we?

您的位置:首頁      JS/JQ/AJAX      javascript正則表達式高級篇

javascript正則表達式高級篇

標簽: 發(fā)布日期:2014-02-20 00:00:00 1097

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)驗:

上面講解了一些特殊的正則表達式,也許在真正的項目中很少用到,但是掌握它們,能讓你的知識更加分豐富,遇到比較難的正則表達式不至于手足無措。