支持多次匹配的方式
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"