兩行代碼輕松搞定JavaScript日期驗(yàn)證
我們通常在 JavaScript 中驗(yàn)證日期,基本的思路大概是,先判斷年月日是否有效,再判斷當(dāng)月是否有當(dāng)日,比如一些月份沒(méi)有 31 日,平年二月沒(méi)有 29、30 日,閏年二月沒(méi)有 30 日等等。
偶然間發(fā)現(xiàn)一個(gè)技巧,能判斷以上所有的情況。除去賦值代碼,實(shí)際代碼僅兩行。
其實(shí)這個(gè)技巧也很簡(jiǎn)單,通過(guò)實(shí)例化 Date 對(duì)象來(lái)生成一個(gè)合法的日期,再去對(duì)比年月日是否相等,以驗(yàn)證日期是否合法。
var originalYear = 2016; var originalMonth = 12; var originalDay = 32; var date = new Date(originalYear, originalMonth - 1, originalDay); var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); console.log(year + '-' + month + '-' + day); // 2017-1-1
因?yàn)?12 月沒(méi)有 32 日,所以輸出的日期就是第二年的 1 月 1 日,年月日不相等,所以 2016 年 12 月 32 日不是一個(gè)合法的日期。
具體的實(shí)現(xiàn)代碼:
var validateDate = function (originalYear, originalMonth, originalDay) {
var date = new Date(originalYear, originalMonth - 1, originalDay);
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
return year == originalYear && month == originalMonth && day == originalDay;
}
測(cè)試:
console.log(validateDate()); // false
console.log(validateDate(-1, -1, -1)); // false
console.log(validateDate('', '', '')); // false
console.log(validateDate([], [], [])); // false
console.log(validateDate({}, {}, {})); // false
// 平年二月。
console.log(validateDate(2015, 2, 29)); // false
// 閏年二月。
console.log(validateDate(2016, 2, 29)); // true
console.log(validateDate(2016, 6, 30)); // true
console.log(validateDate(2016, 6, 31)); // false
console.log(validateDate('2016', '01', '01')); // true
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- javascript日期驗(yàn)證之輸入日期大于等于當(dāng)前日期
- JS驗(yàn)證日期的格式Y(jié)YYY-mm-dd 具體實(shí)現(xiàn)
- javascript 驗(yàn)證日期的函數(shù)
- JS 日期驗(yàn)證正則附asp日期格式化函數(shù)
- js實(shí)現(xiàn)獲取兩個(gè)日期之間所有日期的方法
- js日期插件dateHelp獲取本月、三個(gè)月、今年的日期
- 獲取陰歷(農(nóng)歷)和當(dāng)前日期的js代碼
- JS獲取時(shí)間的相關(guān)函數(shù)及時(shí)間戳與時(shí)間日期之間的轉(zhuǎn)換
- JS動(dòng)態(tài)日期時(shí)間的獲取方法
- js獲取日期:昨天今天和明天、后天
- JS獲取及驗(yàn)證開(kāi)始結(jié)束日期的方法
相關(guān)文章
Javascript 獲取字符串字節(jié)數(shù)的多種方法
Javascript 字符串字節(jié)數(shù)獲取功能多種方法2009-06-06
javascript跳轉(zhuǎn)與返回和刷新頁(yè)面的實(shí)例代碼
這篇文章主要介紹了javascript跳轉(zhuǎn)與返回和刷新頁(yè)面的實(shí)例代碼,簡(jiǎn)單介紹了javascript中window.open()與window.location.href的區(qū)別,感興趣的朋友一起看看吧2019-11-11
JavaScript實(shí)現(xiàn)隨機(jī)點(diǎn)名網(wǎng)頁(yè)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)隨機(jī)點(diǎn)名網(wǎng)頁(yè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
圖片輪換效果實(shí)現(xiàn)代碼(點(diǎn)擊按鈕停止執(zhí)行)
在這個(gè)實(shí)例中需要注意的是,要把images文件夾下圖片的命名設(shè)置為有順序的,1、2、3..才可以,感興趣的朋友可以參考下2013-04-04

