两行代码轻松搞定JavaScript日期验证
我们通常在JavaScript中验证日期,基本的思路大概是,先判断年月日是否有效,再判断当月是否有当日,比如一些月份没有31日,平年二月没有29、30日,闰年二月没有30日等等。
偶然间发现一个技巧,能判断以上所有的情况。除去赋值代码,实际代码仅两行。
其实这个技巧也很简单,通过实例化Date对象来生成一个合法的日期,再去对比年月日是否相等,以验证日期是否合法。
varoriginalYear=2016; varoriginalMonth=12; varoriginalDay=32; vardate=newDate(originalYear,originalMonth-1,originalDay); varyear=date.getFullYear(); varmonth=date.getMonth()+1; varday=date.getDate(); console.log(year+'-'+month+'-'+day);//2017-1-1
因为12月没有32日,所以输出的日期就是第二年的1月1日,年月日不相等,所以2016年12月32日不是一个合法的日期。
具体的实现代码:
varvalidateDate=function(originalYear,originalMonth,originalDay){
vardate=newDate(originalYear,originalMonth-1,originalDay);
varyear=date.getFullYear();
varmonth=date.getMonth()+1;
varday=date.getDate();
returnyear==originalYear&&month==originalMonth&&day==originalDay;
}
测试:
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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
10 诗词送行祝福语大全简短
11 新房开工吉日祝福语简短
12 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短