lastIndex 屬性
更新:2007 年 11 月
傳回字元位置,代表搜尋字串中下一個符合的位置。
{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 rain in Spain falls mainly in the plain.";
var re : RegExp = /\w+/g;
var arr : Array;
while ((arr = re.exec(src)) != null)
print(arr.index + "-" + arr.lastIndex + "\t" + arr);
本程式的輸出為:
0-3 The
4-8 rain
9-11 in
12-17 Spain
18-23 falls
24-30 mainly
31-33 in
34-37 the
38-43 plain