正規表示式exec()函式只有第一執行有效分析

admin發表於2017-02-21

在實際應用中,可能會有這樣的情況,那就是exec()函式只有第一次執行有效,第二次或者第三次會無效,下面就介紹一下出現此種問題的原因和解決方式,希望能夠給需要的朋友帶來幫助。程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
var str="2014-10-1"; 
var reg=new RegExp("(\\d{4}|\\d{2})-(\\d{2}|\\d{1})-(\\d{2}|\\d{1})","g"); 
console.log(reg.exec(str)); 
console.log(reg.exec(reg.exec(str)));

第一次能夠正常獲取匹配的內容,但是第二次返回值是null。

之所以出現上面的現象是由於lastIndex屬性在作怪,可以參閱正規表示式lastIndex一章節。


相關文章