1 <!DOCTYPE html> 2 <html> 3 <head> 4 ????<meta charset="utf-8"/> 5 ????<title>h5compareDate</title> 6 </head> 7 <body> 8 ????<form name="form1" action="compareDate.html" method="post" onSubmit="return compareDoubleDate()"> 9 ????????<input type="text" name="date1">10 ????????<input type="text" name="date2"><br>11 ????????<input type="submit" value="提交">12 ????</form>13 </body>14 <script type="text/javascript">15 ????function compareDoubleDate(){16 ????????var d1 = document.forms["form1"]["date1"].value;17 ????????var d2 = document.forms["form1"]["date2"].value;18 ????????//alert(d1);19 ????????//alert(d2);20 ????????if (d1 == null || d1 == ""){21 ????????????alert("日期必填"); ???22 ????????????return false;23 ????????}24 ????????if (d2 == null || d2 == ""){25 ????????????alert("日期必填"); ???26 ????????????return false;27 ????????}28 ????????29 ????????if (!verifyDate(d1)){30 ????????????alert("日期1格式不对");31 ????????????return false;32 ????????}33 ????????if (!verifyDate(d2)){34 ????????????alert("日期2格式不对");35 ????????????return false;36 ????????}37 ????????38 ????????if (!checkDate(d1)){39 ????????????alert("日期1不合法");40 ????????????return false;41 ????????}42 ????????if (!checkDate(d2)){43 ????????????alert("日期2不合法");44 ????????????return false;45 ????????}46 ????????47 ????????return compareDate(d1, d2);48 ????????49 ????}50 ????<!-- 先验证格式是否正确-->51 ????function verifyDate(date){52 ????????var regExp = /^\d{4}-0?[1-9]|1[0-2]-0?[0-9]|[1-2]\d|3[0-1]$/;//js正则表达式,千万不要加引号53 ????????return regExp.test(date);54 ????}55 56 ????<!-- 日期是否合法,格式正确后,关键要看瑞年2不能超过29天,平年二月不能超过28天,小月不能超过30天,-->57 ????function checkDate(date){58 ????????var arrDate1 = date.split("-");59 ????????var year = Number(arrDate1[0]);60 ????????var month = Number(arrDate1[1]);61 ????????var day = Number(arrDate1[2]);62 ????????//document.write(year);63 ????????if (month == 4 || month == 6 || month == 9 || month == 11){64 ????????????if (day > 30){65 ????????????????alert("日期不合法,");66 ????????????????return false;67 ????????????}68 ????????}69 ????????if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ){70 ????????????if (month == 2 && day > 29){71 ????????????????alert("日期不合法,瑞年2月最大29天");72 ????????????????return false;73 ????????????}74 ?????????????75 ????????}else{76 ????????????if (month == 2 && day > 28){77 ????????????????alert("日期不合法,平年2月最大28天");78 ????????????????return false;79 ????????????}80 ????????}81 ????????return true;82 ????}83 ????84 ????function compareDate(d1, d2){85 ????????var arrDate1 = d1.split("-");86 ????????var date1 = new Date(arrDate1[0], arrDate1[1], arrDate1[2]);87 ????????var arrDate2 = d2.split("-");88 ????????var date2 = new Date(arrDate2[0], arrDate2[1], arrDate2[2]);89 ????????if (date1 > date2){90 ????????????alert("前一个日期应不大于后一个日期");91 ????????????return false;92 ????????}93 ????????return true;94 ????}95 </script>
js 日期格式、内容合法、比较大小、表单提交验证
原文地址:https://www.cnblogs.com/hblthink/p/8538592.html