js 日期格式内容合法比较大小表单提交验证

Posted think的海角

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 日期格式内容合法比较大小表单提交验证相关的知识,希望对你有一定的参考价值。

 

 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>
View Code

 

以上是关于js 日期格式内容合法比较大小表单提交验证的主要内容,如果未能解决你的问题,请参考以下文章

关于js中验证所填时间与当前时间大小的比较

JS中比较2个日期大小验证 日期格式yy-mm-dd

jquery 验证数值大小

表单验证1

jQuery datepicker 验证失败

js验证表单不能填数字怎么判断?