lastIndex 屬性
傳回字元位置,代表搜尋字串中下一個符合的位置。
{RegExp | reArray}.lastIndex
引數
RegExp
必要項。 全域 RegExp 物件。reArray
必要項。 規則運算式物件的 exec 方法所傳回的陣列。
備註
lastIndex 屬性以零為起始,亦即第一個字元的索引為零。 它的初始值為 –1。 無論何時只要成功符合,都會修改它的值。
RegExp 物件的 lastIndex 屬性 (Property) 可由 RegExp 物件的 exec 和 test 方法,以及 String 物件的 match、replace 和 split 方法加以修改。
以下規則套用到 lastIndex 的值:
如果比對失敗,lastIndex 會設為 -1。
如果 lastIndex 大於字串的長度,test 和 exec 會失敗,且 lastIndex 會設為 -1。
如果 lastIndex 等於字串的長度,則規則運算式會在模式符合空字串時與其相符。 否則,比對將失敗,且 lastIndex 會重設為 -1。
否則,lastIndex 會設為最近一次比對成功項目的下一個位置。
RegExp.lastIndex 屬性的初始值是 –1。 它的值是唯讀的,且會隨著找到符合的項目而變更。
注意事項 |
---|
當執行 JScript 預設的快速模式時,無法使用 RegExp 物件的屬性。 若要從命令列編譯使用這些屬性的程式,必須使用 /fast- 關閉快速選項。 因為執行緒的問題,在 ASP.NET 中關閉快速選項並不安全。 |
範例
下列範例說明 lastIndex 屬性的使用方式。 這個函式會重複搜尋字串,並印出字串中每個字的 index 和 lastIndex 值。
var src : String = "The quick brown fox jumps over the lazy dog.";
var re : RegExp = /\w+/g;
var arr : Array;
while ((arr = re.exec(src)) != null)
{
print(arr.index + "-" + arr.lastIndex + "\t" + arr[0]);
}
本程式的輸出為:
0-3 The
4-9 quick
10-15 brown
16-19 fox
20-25 jumps
26-30 over
31-34 the
35-39 lazy
40-43 dog