var rgExp = /(^D*[0-9])/; var str = "this is fun 01 stuff"; var resu = str.match(rgExp); document.writeln(resu);
结果为: this is fun 0,this is fun 0
如果使用圆括号的模式在匹配完成后,会记住这一匹配。被记住的值保存在结果数组中,此例中的结果中间有一个逗号,表明它们是数组的两项。第一个结果是匹配,第二个来自圆括号模式保存的值。如果不用圆括号括着整个模式,而只括其中一部分的话,比如/(^D*)[0-9]/,结果就是下面的例子。
var rgExp = /(^D*)[0-9]/; // or var rgExp = /^(D*)[0-9]/; var str = "this is fun 01 stuff"; var resu = str.match(rgExp); document.writeln(resu);
结果为 : this is fun 0,this is fun
第一项是匹配的字符串,第二项是来自括号模式保存的值。
如果改成/(^D*)([0-9])/,则结果会是三项,即 this is fun 0,this is fun ,0 。
RegExp有一些特殊字符,被标记为$1,$2一直到$9,它们用于保存圆括号所找到的字串。括号模式匹配的值也可以使用,如:
var rgExp = /(w*)-*(w*)/; var str = "java--script"; var resu = str.replace(rgExp,"$2_$1"); document.writeln(resu);
结果为: script_java