使用的原理是將輸入值轉成正規的文字字串
再用 Date() 新增一個日期物件
如果是正確日期將會和輸入是一樣的字串
利用這個原理做到日期格式的驗證
/*-- (判斷日期格式是否正確) -------------------------*/
function isDate(year, month, day){
var dateStr;
if (!month || !day) {
if (month == '') {
dateStr = year + "/1/1"
}else if (day == '') {
dateStr = year + '/' + month + '/1';
}else {
dateStr = year.replace(/[.-]/g, '/');
}
}else {
dateStr = year + '/' + month + '/' + day;
}
dateStr = dateStr.replace(/\/0+/g, '/');
var accDate = new Date(dateStr);
var tempDate = accDate.getFullYear() + "/";
tempDate += (accDate.getMonth() + 1) + "/";
tempDate += accDate.getDate();
if (dateStr == tempDate) {
return true;
}
return false;
}
/*檢查格式*/
isDate("2007/2/12")
isDate("2007-2-12")
isDate("2007.2.12")
isDate("2007/02/02")
isDate("2007", "2", "12")
isDate("2007", "2", "")
isDate(2007, 2, 12)
檔案連結
好方法,目前看到最簡潔的,推一下!
回覆刪除之前因為驗證 2/29 這個日期才想到這個方法
回覆刪除JavaScript 裡的日期函數實在太少了
感謝您的分享!!有用!!好用!!
回覆刪除你好,假使想用成yy/mm/dd ... 格式該如何下首手? 想輸入99/06/24卻出現錯誤判斷~
回覆刪除