+ -
当前位置:首页 → 问答吧 → 求助:如何判断输入时间是否正确

求助:如何判断输入时间是否正确

时间:2010-05-31

来源:互联网

现在输入日期有两个文框,分别为日期文框框AA,时分文本框BB,都是为长日期格式,输入日期必须年月日YYYY-MM-DD,如:2010-05-08,时分必须小时分钟HH:MM,如:05:25。现在需要判断输入日期与时分必须按“YYYY-MM-DD”、“HH:MM”时间格式,否则提示输入错误。JS脚本如何写?我想了几天都不知道如何写,还请各路高手指点,谢谢!
复制内容到剪贴板
代码:
<form name="form1" method="post" action="">
  <p>日期:
    <input type="text" name="aa" size="15" value="2010-06-30">
    <input type="text" name="bb" size="10" value="00:00">
  </p>
  <p>
    <input type="submit" name="Submit" value="提交">
  </p>
</form>
[ 本帖最后由 wangxuhe 于 2010-5-31 15:53 编辑 ]

作者: wangxuhe   发布时间: 2010-05-31


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> <form name="form1" method="post" action=""> <p>日期: <input type="text" name="aa" size="15" value="2002-02-09"> <input type="text" name="bb" size="10" value="00:65"> </p> <p> <input type="submit" name="Submit" value="提交"> </p> </form> </BODY> <SCRIPT LANGUAGE="JavaScript"> <!-- var aa=document.getElementsByName("aa")[0].value var bb=document.getElementsByName("bb")[0].value var aas=aa.split("-") var bbs=bb.split(":") var re1=/^\d{4}-\d{2}-\d{2}$/; var re2=/^\d{2}:\d{2}$/; if(!re1.test(aa)||!re2.test(bb)) alert("请输入正确的格式") if(parseInt(aas[1],10)>12||parseInt(aas[1],10)<1) alert("月份错误") if(parseInt(aas[1],10)==2) if((parseInt(aas[0])%4==0 && parseInt(aas[0])%100!=0) || (parseInt(aas[0])%4==0 && parseInt(aas[0])%100==0 && parseInt(aas[0])%400==0)){ if((parseInt(aas[2],10)>29)) alert("日期错误") }else{ if((parseInt(aas[2],10)>28)) alert("日期错误") } if(parseInt(aas[1],10)==1 ||parseInt(aas[1],10)==3 ||parseInt(aas[1],10)==5 ||parseInt(aas[1],10)==7 ||parseInt(aas[1],10)==8 ||parseInt(aas[1],10)==10 ||parseInt(aas[1],10)==12) if(parseInt(aas[2],10)>31) alert("日期错误") if(parseInt(aas[1],10)==4 ||parseInt(aas[1],10)==6 ||parseInt(aas[1],10)==9 ||parseInt(aas[1],10)==11) if(parseInt(aas[2],10)>31) alert("日期错误") if(parseInt(bbs[0],10)>59||parseInt(bbs[1],10)>59) alert("时间错误") //--> </SCRIPT> </HTML>
 提示:您可以先修改部分代码再运行

作者: su1216   发布时间: 2010-05-31

刚才写的,不知道有没有啥问题
你试试吧

作者: su1216   发布时间: 2010-05-31

好像有错,一打开就出现错误提示

作者: wangxuhe   发布时间: 2010-05-31

那是我设置的日期由问题
你不是要判断日期吗
你设置一个正确的日期就可以了,把日期改掉

作者: su1216   发布时间: 2010-06-01

不用点提交,日期正确,就没有alert出现
日期错误,就弹出提示

作者: su1216   发布时间: 2010-06-01


<script> var DateTime = {}; (function(_$){ _$.isDate = function(str) { var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); if (r == null) return false; var d = new window.Date(r[1], Number(r[3]) - 1, r[4]); return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]); } _$.isTime = function(str) { var r = str.match(/^(\d{2}):(\d{2}):(\d{2})$/) if (r == null) return false; var h = r[1], i = r[2], s = r[3]; return h < 24 && i < 60 && s < 60; } })(DateTime) alert(DateTime.isDate('2010-6-1')); alert(DateTime.isDate('2010-6-01')); alert(DateTime.isDate('2010/06-01')); alert(DateTime.isDate('2010/6/31')); alert(DateTime.isTime('06:30:59')); alert(DateTime.isTime('06:30:60')); </script>
 提示:您可以先修改部分代码再运行

作者: xling   发布时间: 2010-06-01