我有以下函數,當change
事件發生在input
字段中的值時,我正在使用正則表達式匹配來檢查正確的日期格式。正則表達式的JS對象類型返回爲NaN
我的問題是month
,day
和year
返回爲NaN
,我不知道爲什麼。我解析正則表達式對象[1]
,[2]
和[3]
分別與parseInt()
,所以我不知道他們爲什麼返回爲NaN
。
validateDate: function(event) {
var input = $(event.target);
var enteredDate = input.val();
input.destroyValidationMessage();
var pattern = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
var result = pattern.test(enteredDate);
if (result !== null) {
var month = parseInt(result[1], 10);
var day = parseInt(result[2], 10);
var year = parseInt(result[3], 10);
}
}
讀,我不知道是否'exec'或'測試()'是正確的。你能解釋爲什麼你選擇對exec進行測試嗎? – Brian 2012-04-13 14:19:21
我用'match()',原因應該是顯而易見的:你不能用'test()'從輸入中提取數據。看看文檔。正確的方法是爲您提供所需結果的方法。 – 2012-04-13 14:21:20