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

日期正则表达式问题,高手进

楼主ywj41(虾米)2006-03-03 16:53:37 在 Web 开发 / JavaScript 提问

本人对正则表达式   不太明白!请指点!!!  
  ^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$  
  这个日期正则表达式只支持   YYYY-MM-DD的形式   ,请各位帮个忙   改称   YYYY-MM-DD或YYYY/MM/DD这两种形式都可以的   万分谢谢!! 问题点数:50、回复次数:5Top

1 楼hbhbhbhbhb1021(天外水火(我要多努力))回复于 2006-03-03 17:13:53 得分 15

这个为什么要用正则,如果你想改的话就把  
  第一个-改成  
  [\-\/]  
  之后全改成这个\数字,上面那个是第几个括号就是几  
  我觉得不要用正则,给你段代码  
  <script   langauge=javascript>  
  function   checkDate(obj)//判断日期格式是不是符合  
  {  
  var   strDate=obj.value;  
  re=/\d{4}([\-\/])\d{2}\1\d{2}/g  
  if(re.test(strDate))//判断日期格式符合YYYY-MM-DD标准  
  {  
  var   strRe=RegExp.$1;  
  var   DateArray=strDate.split(strRe);  
  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

2 楼ywj41(虾米)回复于 2006-03-03 17:22:11 得分 0

大哥   昨天你就给我了   5555Top

3 楼yuweijiawangxiaodan(YY)回复于 2006-03-03 17:25:04 得分 15

^((((1[6-9]|[2-9]\d)\d{2})[-/](0?[13578]|1[02])[-/](0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})[-/](0?[13456789]|1[012])[-/](0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})[-/]0?2[-/](0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))[-/]0?2[-/]29[-/]))$/  
  则可!!Top

4 楼zhaoxiaoyang(梅雪香@深圳)回复于 2006-03-03 19:44:02 得分 20

日期校验  
  <script   language="JavaScript">  
  <!--  
  function   CheckDate(strDate){  
  var   reg=/^(\d{4})([-])(\d{2})([-])(\d{2})/;  
  if(!reg.test(strDate)){  
  alert("日期格式不正确!\n正确格式为:2004-01-01");  
  return   false;  
  }  
  var   ss=strDate.split("-");  
  var   year=ss[0];  
  var   month=ss[1];  
  var   date=ss[2];  
  if(!checkYear(year)){return   false;}  
  if(!checkMonth(month)){return   false;}  
  if(!checkDate(year,month,date)){return   false;}  
  return   true;  
  }  
  function   checkYear(year){  
  if(isNaN(parseInt(year))){alert("年份输入有误,请重新输入!");   return   false;}  
  else   if(parseInt(year)<1950   ||   parseInt(year)   >2050){   alert("年份应该在1950-2050之间!");   return   false}  
  else   return   true;  
  }  
  function   checkMonth(month){  
  if(isNaN(parseInt(month))){alert("月份输入有误,请重新输入!");   return   false;}  
  else   if(parseInt(month)<1   ||   parseInt(month)   >12){   alert("月份应该在1-12之间!");   return   false}  
  else   return   true;  
  }  
  function   checkDate(year,month,date){  
  var   daysOfMonth=CalDays(parseInt(year),parseInt(month));  
  if(isNaN(parseInt(date))){alert("日期输入有误,请重新输入!");   return   false;}  
  else   if(parseInt(date)<0||parseInt(date)>daysOfMonth){   alert("日期应该在1-"+daysOfMonth+"之间!");   return   false;}  
  else   return   true;  
  }  
  function   CalDays(year,month){  
  var   date=   new   Date(year,month,0);  
  return   date.getDate();  
  }  
  function   isLeapYear(year){  
  if((year   %4==0   &&   year   %100!=0)   ||   (year   %400==0))   return   true;  
  else   return   false;  
  }  
  alert(CheckDate("2007-02-29"));  
  //-->  
  </script>  
   
   
  关于日期的常见操作  
  http://community.csdn.net//Expert/TopicView2.asp?id=4360247&datebasetype=now  
  js   FAQ贴  
  http://community.csdn.net//Expert/TopicView2.asp?id=4356360&datebasetype=now  
  DHTML手册,js手册,dom手册下载  
  http://community.csdn.net//Expert/TopicView2.asp?id=4356325&datebasetype=now  
  Top

5 楼LinTiger(沧海一粟)回复于 2006-03-21 10:46:14 得分 0

收藏Top

相关问题

  • ★★ 匹配日期的正则表达式不太对, 高手请进!
  • 日期的正则表达式
  • 日期正则表达式问题,急!!
  • 【正则表达式验证日期】
  • 求日期正则表达式一个!!
  • 20分求日期正则表达式
  • 求一日期正则表达式
  • 正则表达式高手请进
  • 正则表达式高手请进!
  • 求助!谁会写日期正则表达式?

关键词

  • .net
  • 正则表达式
  • csdn
  • asp
  • datebasetype
  • topicview
  • 日期
  • 手册
  • yyyy
  • expert

得分解答快速导航

  • 帖主:ywj41
  • hbhbhbhbhb1021
  • yuweijiawangxiaodan
  • zhaoxiaoyang

相关链接

  • Web开发类图书

广告也精彩

反馈

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