以下的代碼,是測試從字符串中識別出年月日,可以看到創建的rYMD這個RegExp對象執行了一次後,又執行了一次。
var DateStr = "2014-9-8"; var rYMD = new RegExp("(\\d{4}|\\d{2})-(\\d{2}|\\d{1})-(\\d{2}|\\d{1})", "g"); var aRt = rYMD.exec(DateStr); var sRt=rYMD.exec(DateStr);
經過調試,發現第一次執行,aRt得到了返回的Array(數組),但是緊跟其後的sRt卻是null
經過反復嘗試,發現是因為RegExp對象執行了一次後就廢掉了。
所以,需要注意了,每次用RegExp都需要重新new一個。