使用的原理是將輸入值轉成正規的文字字串
再用 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 回應:
好方法,目前看到最簡潔的,推一下!
之前因為驗證 2/29 這個日期才想到這個方法
JavaScript 裡的日期函數實在太少了
感謝您的分享!!有用!!好用!!
你好,假使想用成yy/mm/dd ... 格式該如何下首手? 想輸入99/06/24卻出現錯誤判斷~
張貼留言