prototype | $1 至 $9 | length | constructor | global | ignoreCase |
lastIndex | multiline | source | exec | test | toString |
RegExp 的特徵
RegExp 繼承了 Function.prototype 與 Object.prototype 的特徵與方法;這些可以直接用在 RegExp,如同下面的用法,在此不再敖述。前述繼承的特徵與方法,有些只能用在物件型態,有些只能用在物件實體,有些兩者皆可;使用時要注意。
下述特徵必須與 RegExp 配合使用,不能用在物件實體。
prototype
可以增加物件的特徵與方法。
$1 至 $9
使用存入括號,可將符合的子字串存入陣列中,然後用特徵 $1 ~ $9 讀出。
length
存有參數的個數。
- 此例,Firefox 輸出為 1;IE, Safari, Chrome 為 2。
RegExp 物件實體的特徵
constructor
存有產生物件實體的函式其位置。
global
如果字旗 g 有設,則為 true;否則為 false。唯讀。
ignoreCase
如果字旗 i 有設,則為 true;否則為 false。唯讀。
lastIndex
程式師可設定此特徵,指定符合計算的起始位置。字旗 g 必須有設,才能使用 lastIndex。lastIndex 不可超過字串的長度,否則會導致失敗。符合計算後 lastIndex 會被設為符合子字串的下一個位置。
- 上例中的 s.replace(),在 IE 會改變 re.lastIndex,內存 9;Firefox, Safari, Chrome 都是 0。所以在 IE 中,下面要加上 re.lastIndex=0,其後的 re.exec( s ) 才會從頭計算。
multiline
如果字旗 m 有設,則為 true;否則為 false。唯讀。
source
內存文法規則。唯讀。
RegExp 物件實體的方法
exec()
對母字串加以處理,尋找符合文法規則的子字串,結果存入陣列中。其語法是:
result = regexp.exec(母字串);
沒有符合時,傳回 null。符合發生時,產生以下結果:
- 結果陣列:[0]存上次符合子字串。[1]...[n]存符合存入括號的子字串。
- index:符合發生在母字串的位置。
- input:母字串。
- lastIndex:符合子字串的下一個位置。如果字旗 g 有設,則可以在同一字串執行多次 exec(),每次執行會由 lastIndex 開始。
- 上例中的 re.exec( s ),IE 沒找到符合的子字串,回傳 null;Firefox, Safari, Chrome 都成功找到符合的子字串。原因請參見 lastIndex。
test()
對母字串加以處理,尋找符合文法規則的子字串。其語法是:
regexp.test(母字串);
符合發生時,傳回 true;沒有符合時,傳回 false。
- 上例中的 re.test( s ),IE 沒找到符合的子字串,回傳 false;Firefox, Safari, Chrome 都回傳 true。原因請參見 lastIndex。
toString()
此法傳回物件實體的字串。