javascript中如何判断输入的日期是否正确

因为没学过正则表达式所以希望高手不要用正则表达式我自己写了一下可以实在是写不下去了functionwriteclick(){username=document.form1... 因为没学过正则表达式 所以希望高手不要用正则表达式
我自己写了一下 可以实在是写不下去了
function writeclick()
{
username=document.form1.username.value;
if(username=="")
{
document.form1.username.focus();
alert("用户名不能为空");
return false;
}
birth=document.form1.birth.value;
if(birth!="")
{
count=birth.split("-");
if(count.length==3)
{
if(count[1]>12)
{
document.form1.birth.focus();
alert("请正确填写日期(例如:2002-5-22)!");
return false;
}

if(count[1]==2)
{
if((count[0]%4==0&&count[0]%100!=0)||count[0]%400==0)
{
if(count[2]>29)
{
document.form1.birth.focus();
alert("月份的天数错误");
return false;
}

}
}
if(count[1]==2)
if(!((count[0]%4==0&&count[0]%100!=0)||count[0]%400==0))
{
if(count[2]>28)
{
document.form1.birth.focus();
alert("月份的天数错误");
return false;
}

}
dt=new Date(birth)
if(!isNaN(dt))
return true;
}
else
{
document.form1.birth.focus();
alert("请正确填写日期(例如:2002-5-22)!");
return false;
}

}
}
我还不能实现当月份不是2月的判断
希望高手能帮帮忙啊 谢谢
展开
 我来答
阳光上的桥
2009-04-27 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65793
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
我建议你还是不要去判断吧,很麻烦的,自动给他转换吧,把平年的2月29直接转换为3月1日,把1月32转换为2月1日,例子代码如下:

<input type=text onChange="chk_date(this);">
<script type=text/javascript>
function chk_date(f)
{
   s=f.value.split('-');
   y=parseInt(s[0]);
   m=parseInt(s[1]);
   d=parseInt(s[2]);
   if (isNaN(y) || isNaN(m) || isNaN(d)){alert("请正确填写日期(例如:2002-5-22)!");return false;}
   dd=new Date(y,m-1,d);
   y=dd.getYear();
   m=dd.getMonth()+1;
   d=dd.getDate();
   f.value=y+'-'+m+'-'+d;
   alert(dd);
}
</script>

以上代码调试通过,如果你愿意,可以解决你的问题。
嘉尔的爸爸
2009-04-28 · TA获得超过1820个赞
知道小有建树答主
回答量:1013
采纳率:0%
帮助的人:291万
展开全部
可以用这个正则表达式判断:
function verify_date(date_str)
{
var myReg=new RegExp("^(?:(?:([0-9]{4}/(?:(?:0?[1,3-9]|1[0-2])/(?:29|30)|((?:0?[13578]|1[02])/31)))|([0-9]{4}/(?:0?[1-9]|1[0-2])/(?:0?[1-9]|1\\d|2[0-8]))|(((?:(\\d\\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))/0?2/29)))$");
if(myReg.test(date_str))
alert("对不起,请您按以下格式输入日期:\n2005-5-5或2005/1/1");
return myReg.test(date_str);
}

date_str是用户输入的日期

参考资料: http://zhidao.baidu.com/question/86258167.html?si=1

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式