2007-09-03 04:54

利用 Date() 檢查日期格式

這是利用 JavaScript 中現有的函數 Date() 作日期驗證
使用的原理是將輸入值轉成正規的文字字串
再用 Date() 新增一個日期物件
如果是正確日期將會和輸入是一樣的字串
利用這個原理做到日期格式的驗證
  1. /*-- (判斷日期格式是否正確) -------------------------*/ 
  2. function isDate(year, month, day){ 
  3.    var dateStr; 
  4.    if (!month || !day) { 
  5.        if (month == '') { 
  6.            dateStr = year + "/1/1" 
  7.        }else if (day == '') { 
  8.            dateStr = year + '/' + month + '/1'; 
  9.        }else { 
  10.            dateStr = year.replace(/[.-]/g, '/'); 
  11.        } 
  12.    }else { 
  13.        dateStr = year + '/' + month + '/' + day; 
  14.    } 
  15.    dateStr = dateStr.replace(/\/0+/g, '/'); 
  16.  
  17.    var accDate = new Date(dateStr); 
  18.    var tempDate = accDate.getFullYear() + "/"; 
  19.    tempDate += (accDate.getMonth() + 1) + "/"; 
  20.    tempDate += accDate.getDate(); 
  21.  
  22.    if (dateStr == tempDate) { 
  23.        return true; 
  24.    } 
  25.    return false; 
  26. } 
  27.  
  28. /*檢查格式*/ 
  29. isDate("2007/2/12") 
  30. isDate("2007-2-12") 
  31. isDate("2007.2.12") 
  32. isDate("2007/02/02") 
  33.  
  34. isDate("2007", "2", "12") 
  35. isDate("2007", "2", "") 
  36. isDate(2007, 2, 12) 

檔案連結

4 回應:

匿名 提到...

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

Jax Hu 提到...

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

匿名 提到...

感謝您的分享!!有用!!好用!!

匿名 提到...

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