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

支持多次匹配的方式

var testStr = "now test001 test002";   
var re = /test(\d+)/ig;    
var r = "";   
while(r = re.exec(testStr)) {   
    alert(r[0] + "  " + r[1]);   
}  

此外也可以用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"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章