正規表示式 lastIndex屬性
lastIndex屬性可以返回或者設定正規表示式新的一次匹配開始的位置。
特別說明:
(1).正規表示式必須執行全域性匹配(g),否則lastIndex屬性不會有效。
(2).此屬性僅對exec方法與test方法有效。
關於lastIndex屬性在exec方法與test方法方法的具體表現本文不做詳細介紹,可以參閱相關文章。
語法結構:
[JavaScript] 純文字檢視 複製程式碼RegExp.lastIndex
此屬性的預設值是0,也就是字串中的第一個字元。
字串計算字元位置的方式與陣列類似,是從0開始的。
瀏覽器支援:
(1).IE瀏覽器支援此屬性。
(2).edge瀏覽器支援此屬性。
(3).火狐瀏覽器支援此屬性。
(4).谷歌瀏覽器支援此屬性。
(5).opera瀏覽器支援屬性。
(6).safria瀏覽器支援此屬性。
例項程式碼:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let str="螞蟻部落"; let reg=/部/; console.log(reg.test(str)); console.log(reg.lastIndex);
程式碼執行效果截圖如下:
上面程式碼使用的是非全域性匹配,所以導致lastIndex屬性失效,返回值並不準確。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let str="螞蟻部落"; let reg=/部/g; console.log(reg.test(str)); console.log(reg.lastIndex);
程式碼執行效果截圖如下:
上述程式碼中,正則採用全域性匹配,那麼lastIndex屬性可以返回正確的值。
正規表示式可以匹配字元"部",它的位置是2,那麼正則開始下一次匹配的位置就是2+1=3。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let str="antzone"; let reg=/n/g; reg.lastIndex=3; console.log(str.match(reg)); console.log(reg.lastIndex);
程式碼執行效果截圖如下:
lastIndex屬性僅對exec方法與test方法有效。
所以上述程式碼中,lastIndex屬性的設定對於match方法沒有任何效果。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let str="antzone"; let reg=/n/g; reg.lastIndex=3; console.log(reg.test(str)); console.log(reg.lastIndex);
程式碼執行效果截圖如下:
對上述程式碼分析如下:
(1).正規表示式可以匹配字元n,並採用全域性匹配。
(2).reg.lastIndex=3設定正規表示式下一次匹配的開始位置為3。
(3).test方法從位置3開始進行嘗試匹配,最終在位置5處,匹配成功,那麼下一次匹配就是從6處開始。
(4).那麼很自然reg.lastIndex屬性的返回值是6。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let str="antzone"; let reg=/n/g; reg.lastIndex=6; console.log(reg.test(str)); console.log(reg.lastIndex);
程式碼執行效果截圖如下:
如果test方法或者exec方法匹配失敗,那麼lastIndex屬性會被重置為0。
相關文章
- 正規表示式 sticky屬性
- 正規表示式 ignoreCase屬性
- 正規表示式 global屬性
- 正規表示式 flags屬性
- 正規表示式 sticky 屬性
- 正規表示式 ignoreCase 屬性
- 正規表示式 global 屬性
- 正規表示式 source 屬性
- 正規表示式 multiline 屬性
- JS正規表示式從入門到入土(8)—— REGEXP物件屬性JS物件
- 正規表示式
- 正規表示式.
- PHP正規表示式抓取某個標籤的特定屬性值的方法PHP
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- php –正規表示式PHP
- 【Linux】正規表示式Linux
- 【JavaScript】正規表示式JavaScript
- URL正規表示式
- 正規表示式 split()
- 初探正規表示式
- 正規表示式 test()
- 正規表示式(?!)作用
- 正規表示式 {n,}
- SQL正規表示式SQL
- 正規表示式(java)Java
- Python——正規表示式Python
- PHP正規表示式PHP
- 正規表示式概括
- javascript正規表示式JavaScript
- java正規表示式Java
- Shell正規表示式
- 常用正規表示式
- 正規表示式合集
- python正規表示式Python
- 【java】正規表示式Java
- MySQL正規表示式MySql
- JavaScript 正規表示式JavaScript
- 正規表示式 教程