prototype | $1 至 $9 | length | constructor | global | ignoreCase |
lastIndex | multiline | source |
RegExp 繼承了 Function.prototype 與 Object.prototype 的特徵與方法;這些可以直接用在 RegExp,如同下面的用法,在此不再敖述。前述繼承的特徵與方法,有些只能用在物件型態,有些只能用在物件實體,有些兩者皆可;使用時要注意。
下述特徵必須與 RegExp 配合使用,不能用在物件實體。
可以增加物件的特徵與方法。
- 程式用法:
<script type='text/javascript'>
var re=new RegExp("\\s", 'ig');
RegExp.prototype.dump=function()
{
document.write( this.toString() );
}
re.dump();
</script> - 執行結果:
/\s/gi
使用存入括號,可將符合的子字串存入陣列中,然後用特徵 $1 ~ $9 讀出。
- 程式用法:
<script type='text/javascript'>
var s=":joe =456 @456";
document.write( s.replace(/:([a-zA-Z]+)\s+=(\d+)\s+/, 'x' ) +'<br />');
document.write( RegExp.$1 +' '+ RegExp.$2 );
</script> - 執行結果:
x@456
joe 456
存有參數的個數。
- 程式用法:
<script type='text/javascript'>
document.write( RegExp.length );
</script> - 執行結果:
2
- 此例,Firefox 輸出為 1;IE, Safari, Chrome 為 2。
存有產生物件實體的函式其位置。
- 程式用法:
<script type='text/javascript'>
re=/^[a-zA-Z]+$/gi;
document.write( re.constructor );
</script> - 執行結果:
function RegExp() { [native code] }
如果字旗 g 有設,則為 true;否則為 false。唯讀。
- 程式用法:
<script type='text/javascript'>
re.global=false;
document.write( re.global );
</script> - 執行結果:
true
如果字旗 i 有設,則為 true;否則為 false。唯讀。
- 程式用法:
<script type='text/javascript'>
re.ignoreCase=false;
document.write( re.ignoreCase );
</script> - 執行結果:
true
程式師可設定此特徵,指定符合計算的起始位置。字旗 g 必須有設,才能使用 lastIndex。lastIndex 不可超過字串的長度,否則會導致失敗。符合計算後 lastIndex 會被設為符合子字串的下一個位置。
- 程式用法:
<script type='text/javascript'>
var s='Hello Wendy';
re=/e(l|n)/ig;
document.write( s.replace(re, 'x' ) +
'<br />'+ re.lastIndex +'<br />');
re.lastIndex=0;
re.exec( s );
document.write( re.lastIndex +'<br />');
re.exec( s );
document.write( re.lastIndex );
</script> - 執行結果:
Hxlo Wxdy
0
3
9
- 上例中的 s.replace(),在 IE 會改變 re.lastIndex,內存 9;Firefox, Safari, Chrome 都是 0。所以在 IE 中,下面要加上 re.lastIndex=0,其後的 re.exec( s ) 才會從頭計算。
如果字旗 m 有設,則為 true;否則為 false。唯讀。
- 程式用法:
<script type='text/javascript'>
re.multiline=true;
document.write( re.multiline );
</script> - 執行結果:
false
內存文法規則。唯讀。
- 程式用法:
<script type='text/javascript'>
re=/^[a-zA-Z]+$/gi;
re.source='';
document.write( re.source );
</script> - 執行結果:
^[a-zA-Z]+$