是不是主要用来判断当前月到底有多少天?参考下面代码:<script language="javascript">
function getLastDay(year,month)
{
var new_year = year; //取当前的年份
var new_month = month;//取下一个月的第一天,方便计算(最后一天不固定)
if(month>=12) //如果当前大于12月,则年份转到下一年
{
new_month -=12; //月份减
new_year++; //年份增
}
var new_date = new Date(new_year,new_month,1); //取当年当月中的第一天
return (new Date(new_date.getTime()-1000*60*60*24)).getDate();//获取当月最后一天日期
}
</script>
这样就能返回你指定的某一个月一共有多少天了,你只需要判断一下输入的日期是否小于这个数字就行了。
function getLastDay(year,month)
{
var new_year = year; //取当前的年份
var new_month = month;//取下一个月的第一天,方便计算(最后一天不固定)
if(month>=12) //如果当前大于12月,则年份转到下一年
{
new_month -=12; //月份减
new_year++; //年份增
}
var new_date = new Date(new_year,new_month,1); //取当年当月中的第一天
return (new Date(new_date.getTime()-1000*60*60*24)).getDate();//获取当月最后一天日期
}
</script>
这样就能返回你指定的某一个月一共有多少天了,你只需要判断一下输入的日期是否小于这个数字就行了。
上面是正则表达式
<head>
<script>
function check_date(ob){
var str=/^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$/;
if( str.test(ob) ){
alert("true");
}else{
alert("false");
}
}
</script>
</head>
<body>
<input id="test5" onblur="check_date(this.value)"/>YYYY-MM-DD YYYY/MM/DD YYYY.MM.DD<br/>
</body>
<script language="JavaScript">
var year = 2007;
var month = 2;
var date = 29;
var dd = new Date(year,month-1,date);
var resMonth = dd.getMonth()+1;
var resDate = dd.getDate(); if (month == resMonth && date == resDate) {
alert("right");
} else {
alert("Date invalid!");
}
</script>