CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

如何判断文本框内提交的日期输入格式

楼主marine_chen(覆雨翻云)2006-03-20 14:22:54 在 Web 开发 / JavaScript 提问

文本框输入的是日期是YYYY-MM-DD格式的,如何对输入的格式进行判断呢?  
  当输入不是这个格式的时候,数据库就报错,所以这一步需要进行判断,如何做请大家帮助。 问题点数:50、回复次数:10Top

1 楼clare2003(忘情火)回复于 2006-03-20 14:28:19 得分 50

用javascript检查yyyy-mm-dd格式的正确源码    
   
  *******************************  
  <SCRIPT     LANGUAGE=javascript>                      
  <!--              
   
  function   form4_onsubmit()                      
  {  
   
          ymd1=form4.date1.value.split("-");  
          month1=ymd1[1]-1  
                var   Date1   =   new   Date(ymd1[0],month1,ymd1[2]);    
  if   (Date1.getMonth()+1!=ymd1[1]||Date1.getDate()!=ymd1[2]||Date1.getFullYear()!=ymd1[0]||ymd1[0].length!=4)  
          {  
                alert("非法日期,请依【YYYY-MM-DD】格式输入");  
                  form4.date1.focus();  
                  return   false;                      
                  }  
  alert("输入日期:"   +   form4.date1.value);  
  return   true;  
  }  
  //-->                      
  </SCRIPT>  
  <%   nowdate=year(date)&"-"&month(date)&"-"&day(date)%>  
  <form   name=form4   method="POST"   action="chkfind.asp"   onsubmit="return   form4_onsubmit()">                                                      
  <input   type="text"   name="date1"   size="12"   value=<%=nowdate%>   >              
  </form>  
   
     
     
  Top

2 楼hbhbhbhbhb1021(天外水火(我要多努力))回复于 2006-03-20 14:28:30 得分 0

<script   langauge=javascript>  
  function   checkDate(obj)//判断日期格式是不是符合  
  {  
  var   strDate=obj.value;  
  re=/\d{4}\-\d{2}-\d{2}/g  
  if(re.test(strDate))//判断日期格式符合YYYY-MM-DD标准  
  {  
  var   DateArray=strDate.split("-");  
  var   dateElement=new   Date(DateArray[0],parseInt(DateArray[1])-1,DateArray[2]);  
  if(!((dateElement.getFullYear()==parseInt(DateArray[0]))&&((dateElement.getMonth()+1)==parseInt(DateArray[1]))&&(dateElement.getDate()==parseInt(DateArray[2]))))//判断日期逻辑  
  {  
  alert("不符合时间逻辑")  
  obj.value='';  
  }  
  else  
  {  
  alert("正确")  
  }  
  }  
  else  
  {  
  alert("格式输入错误")  
  obj.value='';  
  }  
   
  }  
  </script>  
  <input   name=time1   onblur=checkDate(this)>Top

3 楼clare2003(忘情火)回复于 2006-03-20 14:30:31 得分 0

*校验字符串是否为日期型  
  *返回值:  
  *如果为空,定义校验通过,   返回true  
  *如果字串为日期型,校验通过,   返回true  
  *如果日期不合法,   返回false   参考提示信息:输入域的时间不合法!(yyyy-MM-dd)  
  */  
  function   checkIsValidDate(str)  
  {  
  //如果为空,则通过校验  
  if(str   ==   "")  
  return   true;  
  var   pattern   =   /^((\\d{4})|(\\d{2}))-(\\d{1,2})-(\\d{1,2})$/g;  
  if(!pattern.test(str))  
  return   false;  
  var   arrDate   =   str.split("-");  
  if(parseInt(arrDate[0],10)   <   100)  
  arrDate[0]   =   2000   +   parseInt(arrDate[0],10)   +   "";  
  var   date   =   new   Date(arrDate[0],(parseInt(arrDate[1],10)   -1)+"",arrDate[2]);  
  if(date.getYear()   ==   arrDate[0]  
  &&   date.getMonth()   ==   (parseInt(arrDate[1],10)   -1)+""  
  &&   date.getDate()   ==   arrDate[2])  
  return   true;  
  else  
  return   false;  
  }//Top

4 楼KimSoft(革命的小酒天天醉-http://blog.csdn.net/kimsoft/)回复于 2006-03-20 14:32:50 得分 0

<SCRIPT   LANGUAGE="JavaScript">  
  <!--  
  function   IsDate(op,   formatString){  
  formatString   =   formatString   ||   "ymd";  
  var   m,   year,   month,   day;  
  switch(formatString){  
  case   "ymd"   :  
  m   =   op.match(new   RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));  
  if(m   ==   null   )   return   false;  
  day   =   m[6];  
  month   =   m[5]*1;  
  year   =     (m[2].length   ==   4)   ?   m[2]   :   GetFullYear(parseInt(m[3],   10));  
  break;  
  case   "dmy"   :  
  m   =   op.match(new   RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));  
  if(m   ==   null   )   return   false;  
  day   =   m[1];  
  month   =   m[3]*1;  
  year   =   (m[5].length   ==   4)   ?   m[5]   :   GetFullYear(parseInt(m[6],   10));  
  break;  
  default   :  
  break;  
  }  
  if(!parseInt(month))   return   false;  
  month   =   month==0   ?12:month;  
  var   date   =   new   Date(year,   month-1,   day);  
  return   (typeof(date)   ==   "object"   &&   year   ==   date.getFullYear()   &&   month   ==   (date.getMonth()+1)   &&   day   ==   date.getDate());  
  function   GetFullYear(y){return   ((y<30   ?   "20"   :   "19")   +   y)|0;}  
  }  
   
  alert(IsDate("2006-03-0"))  
  //-->  
  </SCRIPT>Top

5 楼marine_chen(覆雨翻云)回复于 2006-03-20 14:39:39 得分 0

这么多啊    
  脚本语言我不太懂  
  谢谢大家热情帮助  
  我慢慢看一下  
  感觉有点复杂啊。。。Top

6 楼marine_chen(覆雨翻云)回复于 2006-03-20 15:11:36 得分 0

稍微看了一下,现在的需求是这样的:  
  如果输入格式不为yyyy-mm-dd的格式,就跳出提示框提示格式错误即可  
  比如后面有空格、日期位数不对等等  
  这样如何处理呢Top

7 楼kangqin(小康)回复于 2006-03-20 15:17:18 得分 0

<body>  
  <input   id="date"   /><input   type="button"   value="click"   onclick="checkDate()"   />  
  <script>  
  function   checkDate()  
  {  
  var   obj=document.getElementById("date");  
  var   temp=obj.value;  
  var   pattern=/^(\d{4})-(\d{2})-(\d{2})$/i  
  var   matches=temp.match(pattern);  
  if(matches)   //匹配   DDDD-DD-DD   的形式  
  {  
  var   tempDate=new   Date(matches[1],matches[2]-1,matches[3]);  
  if(tempDate.getYear()!=matches[1]||tempDate.getMonth()!=(matches[2]-1)||tempDate.getDate()!=matches[3])   //检查是否正确日期   比如9923-15-48   等形式  
  {  
  alert("日期不正确!");  
  return   false;  
  }  
  }  
  else  
  {  
  alert("格式错误");  
  return   false;  
  }  
  }  
  </script>  
  </body>Top

8 楼marine_chen(覆雨翻云)回复于 2006-03-20 16:07:41 得分 0

TOkangqin(小康)    
  这个方法能不能对输入值为空进行判断呢  
  比如输入的是:2005-3   -1  
  3后有个空格Top

9 楼marine_chen(覆雨翻云)回复于 2006-03-20 16:12:18 得分 0

我提交的是时间查询范围  
  有两个文本框输入时间  
  对着两个都要判断  
  var   obj=document.getElementById("date");  
  这句是接受一个时间date  
  另外一个如何弄呢  
  单独再写一个方法吗Top

10 楼marine_chen(覆雨翻云)回复于 2006-03-20 17:17:39 得分 0

按照clare2003(忘情火)   的格式我搞定了  
  呵呵  
  3ksTop

相关问题

  • 文本框中输入日期格式
  • 如何改变文本框的输入数据格式?
  • 【SWT 有没有做“格式化输入”用的 文本框 ?】
  • 文本框(Text)如何设定指定的输入格式?
  • 在文本框中输入HTML标记,提交时报错
  • 文本框格式
  • 如何用Javascript判断文本框中输入的是不是日期格式
  • C#中如何自定义文本框输入的字符串格式
  • 高分求(急)能实现限制输入时间格式的文本框
  • 如果不在文本框内输入值,就不允许提交,怎么做?

关键词

  • 格式
  • 校验
  • 日期
  • 判断
  • 输入
  • yyyy
  • 返回
  • dd
  • mm
  • str

得分解答快速导航

  • 帖主:marine_chen
  • clare2003

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo