DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 每天一篇javascript學習小結(RegExp對象)
每天一篇javascript學習小結(RegExp對象)
編輯:關於JavaScript     

1、正則表達式test方法

var text = "cat, bat, sat, fat";  
  var pattern = /.at/;
  
  if (pattern.test(text)){
   alert("The pattern was matched.");
  }

2、正則的toString()方法

var pattern = new RegExp("\\[bc\\]at", "gi");
  alert(pattern.toString()); // /\[bc\]at/gi
  alert(pattern.toLocaleString()); // /\[bc\]at/gi

3、RegExp Constructor(構造函數) Properties(屬性)

 var text = "this has been a short summer";
  var pattern = /(.)hort/g;
  
  /*
   * Note: Opera doesn't support input, lastMatch, lastParen, or multiline.
   * Internet Explorer doesn't support multiline.
   */  
  if (pattern.test(text)){
   alert(RegExp.input);    //this has been a short summer
   alert(RegExp.leftContext);   //this has been a   
   alert(RegExp.rightContext);  // summer
   alert(RegExp.lastMatch);   //short
   alert(RegExp.lastParen);   //s
   alert(RegExp.multiline);   //false
  }
  input      保存被搜索的字符串
  index      保存匹配的首字符的位置
  lastIndex     保存匹配的字符串下一個字符的位置
  lastMatch     保存匹配到的字符串
  lastParen     保存最後一個被匹配的字符串(最後一個括號內的內容)
  leftContext    保存匹配字符串左邊的內容
  rightContext   保存匹配字符串右邊的內容
  $1~$9   保存最開始的9個子匹配(括號中的內容)
 var text = "this has been a short summer";
  var pattern = /(.)hort/g;
  
  /*
   * Note: Opera doesn't support short property names.
   * Internet Explorer doesn't support multiline.
   */  
  if (pattern.test(text)){
   alert(RegExp.$_);    //this has been a short summer
   alert(RegExp["$`"]);   //this has been a   
   alert(RegExp["$'"]);   // summer
   alert(RegExp["$&"]);   //short
   alert(RegExp["$+"]);   //s
   alert(RegExp["$*"]);   //false
  }
  * 分為長屬性名和短屬性名
  * input   $_  最近一次要匹配的字符串
  * lastMatch  $&  最近一次的匹配項
  * lastParen  $+  最近一次匹配的捕獲組
  * leftContext  $`  input字符串中lastMatch之前的文本
  * multiline  $*  布爾值,表示是否所有表達式都使用多行模式。
  * rightContext $'  input字符串中lastMatch之後的文本

4、正則$1.....$9

 var text = "this has been a short summer";
  var pattern = /(..)or(.)/g;
    
  if (pattern.test(text)){
   alert(RegExp.$1);  //sh
   alert(RegExp.$2);  //t
  }
  每當產生一個帶括號的成功匹配時,$1...$9 屬性的值就被修改。 
  可以在一個正則表達式模式中指定任意多個帶括號的子匹配,但只能存儲最新的九個。

5、RegExp exec() 

var text = "mom and dad and baby";
  
  var pattern = /mom( and dad( and baby)?)?/gi;
  var matches = pattern.exec(text);
  
  alert(matches.index); //0 第一個被匹配到的位置
  alert(matches.input); //"mom and dad and baby" 匹配的原始字符串
  alert(matches[0]);  //"mom and dad and baby" 匹配的第一個值
  alert(matches[1]);  //" and dad and baby" 匹配的第二個值
  alert(matches[2]);  //" and baby"   匹配的第三個值
 var text = "cat, bat, sat, fat";  
  var pattern1 = /.at/;
  
  var matches = pattern1.exec(text);  
  alert(matches.index); //0
  alert(matches[0]);  //"cat"
  alert(pattern1.lastIndex);//0

  matches = pattern1.exec(text);  
  alert(matches.index); //0
  alert(matches[0]);  //"cat"
  alert(pattern1.lastIndex);//0

  var pattern2 = /.at/g;
  
  var matches = pattern2.exec(text);  
  alert(matches.index); //0
  alert(matches[0]);  //"cat"
  alert(pattern2.lastIndex);//0

  matches = pattern2.exec(text);  
  alert(matches.index); //5
  alert(matches[0]);  //"bat"
  alert(pattern2.lastIndex);//0

6、RegExp實例屬性

 var pattern1 = /\[bc\]at/i;
  
  alert(pattern1.global);  //false //是否設置全局查找
  alert(pattern1.ignoreCase); //true 是否忽略大小寫
  alert(pattern1.multiline); //false 是否設置多行查找
  alert(pattern1.lastIndex); //0  一個整數,標示開始下一次匹配的字符位置。
  alert(pattern1.source);  //"\[bc\]at" 正則表達式的源文本。

  var pattern2 = new RegExp("\\[bc\\]at", "i");
  
  alert(pattern2.global);  //false
  alert(pattern2.ignoreCase); //true
  alert(pattern2.multiline); //false
  alert(pattern2.lastIndex); //0
  alert(pattern2.source);  //"\[bc\]at"

以上就是今天的javascript學習小結,之後每天還會繼續更新,希望大家繼續關注。

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