使用的原理是將輸入值轉成正規的文字字串
再用 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卻出現錯誤判斷~
張貼留言