关于yyyy-mm提交时的判断?

MasterChen 2007-04-03 05:09:09
一个日期 要的格式是yyyy-mm,例如:2005-01-01 在提交时该怎么做判断,请各位帮帮忙?谢了。
...全文
218 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
MasterChen 2007-04-03
  • 打赏
  • 举报
回复
ok了
梅雪香 2007-04-03
  • 打赏
  • 举报
回复
http://www.blogjava.net/mxx/archive/2006/09/27/72159.html

<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>
MasterChen 2007-04-03
  • 打赏
  • 举报
回复
因为我要填两个日期,如果用上面的方面,obj.focus()时会出现问题,即输入第一个日期后,鼠标点击下一个输入框时,会不停的弹出 “格式不对”这样的窗口,所以,我想还是在提交时做个判断比较好。
MasterChen 2007-04-03
  • 打赏
  • 举报
回复
我想在提交保存到数据库时做处理,而不是即时检测
hbhbhbhbhb1021 2007-04-03
  • 打赏
  • 举报
回复
上面这个方法好像是meizz的
hbhbhbhbhb1021 2007-04-03
  • 打赏
  • 举报
回复
<script language=javascript>
String.prototype.isDate = function()
{
var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)return false; var d = new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
function mm(obj)
{
if(!obj.value.isDate())
{
alert("不是时间")
obj.value=''
}
}
</script>
<input onblur="mm(this)">
MasterChen 2007-04-03
  • 打赏
  • 举报
回复
我想要的结果是限定死了,就是yyyy-dd的格式,填的不对就重题
jacklinchen 2007-04-03
  • 打赏
  • 举报
回复
只要判断是否是合法日期就行,自己整个小函数(小于10的加0)转化一下,就不用再判断了。

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧