javascript对日期格式为YYYY-MM-DD hh:mm:ss的合法性判定

最经做个小系统,刚好用到了,在网上搜也没找到合适的,就自己写了一个,这个直接粘贴过去就可以用!发在这里,不好的地方还希望大家指正!

文件名叫test.jsp就可以!

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <base href="<%=basePath%>">
   
    <title>这是一个测试页面</title>
   
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">   
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

    <script language="javaScript">
    function mycheck(){
    if(Stime.starttime.value=="")
    {alert("请输入起始时间!");Stime.starttime.focus();return;}
    if(Stime.starttime.value!="")
    {
         var str=Stime.starttime.value;
      var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;       
                  var r = str.match(reg);
      if(r==null){alert("对不起,您输入的日期格式不正确!");Stime.starttime.focus();return;}    
      if(r[3]<1||r[3]>12){alert("月份必须介于1和12之间,请您重新输入!");Stime.starttime.focus();return;}//对月份进行判定
     
      //对日期进行判定
      if(r[3]==2&&r[1]%4==0)//闰年二月的日期的判定
      {
          if(r[4]<0||r[4]>29){alert(r[1]+"年2月的日期必须介于1和29之间,请您重新输入!");Stime.starttime.focus();return;}
      }
      if(r[3]==2&&r[1]%4!=0)//平年二月的日期的判定
      {
          if(r[4]<0||r[4]>28){alert(r[1]+"年2月的日期必须介于1和28之间,请您重新输入!");Stime.starttime.focus();return;}
      }
      if(r[3]<8&&r[3]%2==0)//4,6月日期的判定
      {
          if(r[4]<0||r[4]>30){alert(r[3]+"月的日期必须介于1和30之间,请您重新输入!");Stime.starttime.focus();return;}
      }
      if(r[3]<8&&r[3]%2!=0)//1、3、5、7月日期的判定
      {
          if(r[4]<0||r[4]>31){alert(r[3]+"月的日期必须介于1和31之间,请您重新输入!");Stime.starttime.focus();return;}
      }
      if(r[3]>=8&&r[3]%2==0)//8、10、12月日期的判定
      {
          if(r[4]<0||r[4]>31){alert(r[3]+"月的日期必须介于1和31之间,请您重新输入!");Stime.starttime.focus();return;}
      }
      if(r[3]>=8&&r[3]%2!=0)//9、11月日期的判定
      {
          if(r[4]<0||r[4]>30){alert(r[3]+"月的日期必须介于1和30之间,请您重新输入!");Stime.starttime.focus();return;}
      }
      //日期判定结束
     
      if(r[5]<0||r[5]>23){alert("小时数必须介于0和23之间,请您重新输入!");Stime.starttime.focus();return;}//对小时进行判断
      if(r[6]<0||r[6]>59){alert("分钟数必须介于0和59之间,请您重新输入!");Stime.starttime.focus();return;}//对分钟进行判断
      if(r[7]<0||r[7]>59){alert("秒数必须介于0和59之间,请您重新输入!");Stime.starttime.focus();return;}//对秒进行判断   
    }
    if(Stime.endtime.value=="")
    {alert("请输入截止时间!");Stime.endtime.focus();return;}
    Stime.submit();
   
    }
   
     </script>

<body>

   <h1 align="center">Hello 这是一个测试页面</h1>
   <form action="selectTime.jsp" name="Stime" method="post">

    <table width="620" border="0" align="center">
<tr>
<td><font face="幼圆"><span class="STYLE5">请输入时间:
   <input type="text" name="starttime" value="2009-6-03 11:23:19" />
</td>
<td><input type="button" name="next" value="查 询" onClick="mycheck()" />      &nbsp;&nbsp;&nbsp;&nbsp;</td>
</tr>
</table>
    
</form>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值