exec | test | toString |
RegExp 繼承了 Function.prototype 與 Object.prototype 的特徵與方法;這些可以直接用在 RegExp,如同下面的用法,在此不再敖述。前述繼承的特徵與方法,有些只能用在物件型態,有些只能用在物件實體,有些兩者皆可;使用時要注意。
對母字串加以處理,尋找符合文法規則的子字串,結果存入陣列中。其語法是:
result = regexp.exec(母字串);
沒有符合時,傳回 null。符合發生時,產生以下結果:
- 結果陣列:[0]存上次符合子字串。[1]...[n]存符合存入括號的子字串。
- index:符合發生在母字串的位置。
- input:母字串。
- lastIndex:符合子字串的下一個位置。如果字旗 g 有設,則可以在同一字串執行多次 exec(),每次執行會由 lastIndex 開始。
- 程式用法:
<script type='text/javascript'>
var s='Hello Wendy';
var re=/e(l|n)/gi;
document.write( s.replace(re, 'x' ), '<br />');
var rs=re.exec( s );
document.write( rs, '<br />');
document.write( rs.length +' : '+
rs.index +' : '+ rs.input +'<br />');
for(var i=0; i < rs.length; i++)
document.write( rs[i] +' : ');
</script> - 執行結果:
Hxlo Wxdy
el,l
2 : 1 : Hello Wendy
el : l :
- 上例中的 re.exec( s ),IE 沒找到符合的子字串,回傳 null;Firefox, Safari, Chrome 都成功找到符合的子字串。原因請參見 lastIndex。
對母字串加以處理,尋找符合文法規則的子字串。其語法是:
regexp.test(母字串);
符合發生時,傳回 true;沒有符合時,傳回 false。
- 程式用法:
<script type='text/javascript'>
s='Hello Wendy';
re=/e(l|n)/gi;
document.write( s.replace(re, 'x' ), '<br />');
document.write( re.test( s ));
</script> - 執行結果:
Hxlo Wxdy
true
- 上例中的 re.test( s ),IE 沒找到符合的子字串,回傳 false;Firefox, Safari, Chrome 都回傳 true。原因請參見 lastIndex。
此法傳回物件實體的字串。
- 程式用法:
<script type='text/javascript'>
document.write( re.toString() );
</script> - 執行結果:
/e(l|n)/gi