(轉)JS正則表達式獲取分組內容的方法


來自:http://liudaoru.iteye.com/blog/137290

 

剛才寫的居然丟掉了,郁悶,重新謝了。

支持多次匹配的方式:

js 代碼
  1. var testStr = "now test001 test002";   
  2. var re = /test(\d+)/ig;    
  3. var r = "";   
  4. while(r = re.exec(testStr)) {   
  5.     alert(r[0] + "  " + r[1]);   
  6. }  

此外也可以用testStr.match(re),但是這樣的話就不能有g的選項,而且只能得到第一個匹配。

另外備忘一下:

正則表達式對象的屬性及方法: 
  預定義的正則表達式擁有有以下靜態屬性:input, multiline, lastMatch, lastParen, leftContext,

rightContext和$1到$9。其中input和multiline可以預設置。其他屬性的值在執行過exec或test方法后被根據

不同條件賦以不同的值。許多屬性同時擁有長和短(perl風格)的兩個名字,並且,這兩個名字指向同一個值。(JavaScript模擬perl的正則表達式)

正則表達式對象的屬性: 
屬性 含義 
$1...$9 如果它(們)存在,是匹配到的子串  
$_ 參見input  
$* 參見multiline  
$& 參見lastMatch  
$+ 參見lastParen  
$` 參見leftContext  
$''          參見rightContext  
constructor     創建一個對象的一個特殊的函數原型  
global        是否在整個串中匹配(bool型)  
ignoreCase     匹配時是否忽略大小寫(bool型)  
input        被匹配的串  
lastIndex      最后一次匹配的索引  
lastParen      最后一個括號括起來的子串  
leftContext     最近一次匹配以左的子串  
multiline      是否進行多行匹配(bool型)  
prototype      允許附加屬性給對象  
rightContext    最近一次匹配以右的子串  
source        正則表達式模式  
lastIndex      最后一次匹配的索引 

正則表達式對象的方法: 
方法 含義 
compile       這個應該是指重新定義正則表達式的內容
exec       執行查找,可以利用while的方式多次查找

test        進行匹配  
toSource      返回特定對象的定義(literal representing),其值可用來創建一個新的對象。重載Object.toSource方法得到的。  
toString      返回特定對象的串。重載Object.toString方法得到的。  
valueOf       返回特定對象的原始值。重載Object.valueOf方法得到 
 

例子: 
<script language="JavaScript"> 
var myReg = /(w+)s(w+)/; 
var str  = "John Smith"; 
var newstr = str.replace(myReg, "$2, $1"); 
document.write(newstr); 
</script>

將輸出"Smith, John" 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM