本文實(shí)例講述了javascript正則表達(dá)式之分組概念與用法。分享給大家供大家參考,具體如下:
function matchDemo(){ var s; //該表達(dá)式分了三個(gè)組:d(b+)(d)、(b+)、(d)這個(gè)三個(gè)組(實(shí)際上是四個(gè)組,包括本身所有的表達(dá)式) //從最左邊數(shù)第一個(gè)括號(hào)為第一個(gè)組,第二個(gè)括號(hào)為第二組,以此類推,分別對(duì)應(yīng)的值為RegExp.$1和RegExp.$2的值 var re = new RegExp("(d(b+)(d))","ig"); var str = "cdbBdbsbdbdz"; //exec()返回的值是符合表達(dá)式查找出來的一個(gè)數(shù)組 var arr = re.exec(str); //符合d(b+)(d)這個(gè)表達(dá)式返回的值 s = "$1 contains: " + RegExp.$1 + ", RegExp.$1 : " + RegExp.$1.length + "/n"; //符合(b+)這個(gè)表達(dá)式返回的值 s += "$2 contains: " + RegExp.$2 + ", RegExp.$2 : " + RegExp.$2 + "/n"; //符合(d)這個(gè)表達(dá)式返回的值 s += "$3 contains: " + RegExp.$3 + ", RegExp.$3 : " + RegExp.$3; //得到匹配字符串最后一個(gè)字符在字符串中的位置,也就是下次匹配開始位置 alert(RegExp.lastIndex); //如果存在值,則返回的是最后一個(gè)分組的結(jié)果(返回任何正則表達(dá)式查找過程中最后括的子匹配) alert(RegExp.lastParen); //得到最后匹配的字符串(返回任何正則表達(dá)式搜索過程中的最后匹配的字符) alert(RegExp.lastMatch); //leftContext + lastMatch + rightContext == context alert(RegExp.leftContext); alert(RegExp.rightContext); //得到的結(jié)果為第二個(gè)分組的結(jié)果 alert(RegExp.$2); return(s);}alert(matchDemo());
function matchDemo2(){ var s,temp; //該結(jié)果分為兩個(gè)組(b+)、(d),當(dāng)然還包括全部(d(b+)(d))為默認(rèn)的組 var re = new RegExp("d(b+)(d)","ig"); var str = "cdbBdbsbdbdz"; //arr的結(jié)果包括三個(gè)組(包括全部的模式)返回的結(jié)果 //dbBd、bB、d和dbd、b、d這兩個(gè)模式匹配,而第二個(gè)和第三個(gè)數(shù)組實(shí)際上就是在第一個(gè)的基礎(chǔ)上匹配(b+)、(d)這兩個(gè)模式 //也就是說分組是在全匹配的模式下再進(jìn)行匹配,起到"篩選"的功能 while((arr = re.exec(str)) != null) { alert(arr); temp = "$1 contains: " + RegExp.$1 + ", RegExp.$1.length : " + RegExp.$1.length + ",RegExp.$1.lastIndex:" + RegExp.$1.lastIndex; alert(temp); //$2屬性表示的是匹配第二個(gè)分組,即(d)這個(gè)模式 s = "$2 contains: " + RegExp.$2 + ", RegExp.$2.length : " + RegExp.$2.length; alert(s); }}matchDemo2();
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注