剛才寫的居然丟掉了,鬱悶,重新謝了。
支援多次匹配的方式:
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的選項,而且只能得到第一個匹配。
另外備忘一下:
Regex對象的屬性及方法:
預定義的Regex擁有有以下靜態屬性:input, multiline, lastMatch, lastParen, leftContext,
rightContext和$1到$9。其中input和multiline可以預設定。其他屬性的值在執行過exec或test方法後被根據
不同條件賦以不同的值。許多屬性同時擁有長和短(perl風格)的兩個名字,並且,這兩個名字指向同一個值。(JavaScript類比perl的Regex)
Regex對象的屬性:
屬性 含義
$1...$9 如果它(們)存在,是匹配到的子串
$_ 參見input
$* 參見multiline
$& 參見lastMatch
$+ 參見lastParen
$` 參見leftContext
$'' 參見rightContext
constructor 建立一個對象的一個特殊的函數原型
global 是否在整個串中匹配(bool型)
ignoreCase 匹配時是否忽略大小寫(bool型)
input 被匹配的串
lastIndex 最後一次匹配的索引
lastParen 最後一個括弧括起來的子串
leftContext 最近一次匹配以左的子串
multiline 是否進行多行匹配(bool型)
prototype 允許附加屬性給對象
rightContext 最近一次匹配以右的子串
source Regex模式
lastIndex 最後一次匹配的索引
Regex對象的方法:
方法 含義
compile 這個應該是指重新定義Regex的內容
exec 執行尋找,可以利用while的方式多次尋找
test 進行匹配 www.2cto.com
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"
摘自 紙頭折飛機