2007-09-03

利用 Date() 檢查日期格式

這是利用 JavaScript 中現有的函數 Date() 作日期驗證
使用的原理是將輸入值轉成正規的文字字串
再用 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)

檔案連結

4 則留言:

  1. 好方法,目前看到最簡潔的,推一下!

    回覆刪除
  2. 之前因為驗證 2/29 這個日期才想到這個方法
    JavaScript 裡的日期函數實在太少了

    回覆刪除
  3. 感謝您的分享!!有用!!好用!!

    回覆刪除
  4. 你好,假使想用成yy/mm/dd ... 格式該如何下首手? 想輸入99/06/24卻出現錯誤判斷~

    回覆刪除

你好!歡迎你在我的 Blog 上留下你寶貴的意見。