DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> javascript正則表達式之分組概念與用法實例
javascript正則表達式之分組概念與用法實例
編輯:關於JavaScript     

本文實例講述了javascript正則表達式之分組概念與用法。分享給大家供大家參考,具體如下:

function matchDemo(){
  var s;
  //該表達式分了三個組:d(b+)(d)、(b+)、(d)這個三個組(實際上是四個組,包括本身所有的表達式)
  //從最左邊數第一個括號為第一個組,第二個括號為第二組,以此類推,分別對應的值為RegExp.$1和RegExp.$2的值
  var re = new RegExp("(d(b+)(d))","ig");
  var str = "cdbBdbsbdbdz";
  //exec()返回的值是符合表達式查找出來的一個數組
  var arr = re.exec(str);
  //符合d(b+)(d)這個表達式返回的值
  s = "$1 contains: " + RegExp.$1 + ", RegExp.$1 : " + RegExp.$1.length + "\n";
  //符合(b+)這個表達式返回的值
  s += "$2 contains: " + RegExp.$2 + ", RegExp.$2 : " + RegExp.$2 + "\n";
  //符合(d)這個表達式返回的值
  s += "$3 contains: " + RegExp.$3 + ", RegExp.$3 : " + RegExp.$3;
  //得到匹配字符串最後一個字符在字符串中的位置,也就是下次匹配開始位置
  alert(RegExp.lastIndex);
  //如果存在值,則返回的是最後一個分組的結果(返回任何正則表達式查找過程中最後括的子匹配)
  alert(RegExp.lastParen);
  //得到最後匹配的字符串(返回任何正則表達式搜索過程中的最後匹配的字符)
  alert(RegExp.lastMatch);
  //leftContext + lastMatch + rightContext == context
  alert(RegExp.leftContext);
  alert(RegExp.rightContext);
  //得到的結果為第二個分組的結果
  alert(RegExp.$2);
  return(s);
}
alert(matchDemo());

function matchDemo2(){
  var s,temp;
  //該結果分為兩個組(b+)、(d),當然還包括全部(d(b+)(d))為默認的組
  var re = new RegExp("d(b+)(d)","ig");
  var str = "cdbBdbsbdbdz";
  //arr的結果包括三個組(包括全部的模式)返回的結果
  //dbBd、bB、d和dbd、b、d這兩個模式匹配,而第二個和第三個數組實際上就是在第一個的基礎上匹配(b+)、(d)這兩個模式
  //也就是說分組是在全匹配的模式下再進行匹配,起到"篩選"的功能
  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屬性表示的是匹配第二個分組,即(d)這個模式
      s = "$2 contains: " + RegExp.$2 + ", RegExp.$2.length : " + RegExp.$2.length;
      alert(s);
  }
}
matchDemo2();

更多關於JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

希望本文所述對大家JavaScript程序設計有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved