JS正則爲什麼exec會返回null, test都返回true了,而exec爲null?

JS正則爲什麼exec會返回null, 先輸出test都返回true了,而exec爲null?原因如下:

如果正則表達式設置了全局標誌,test() 的執行會改變正則表達式   lastIndex屬性。連續的執行test()方法,後續的執行將會從 lastIndex 處開始匹配字符串,(exec() 同樣改變正則本身的 lastIndex屬性值).

所以,如果代碼執行test()查詢了一次,然後執行exec就是第二次查詢了,這時候lastIndex已經改變所以沒有查詢結果,所以返回null。

所以,一般不要把test()和exec()聯用,如果出於測試目的,那麼測試後要把test()刪掉!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章