日期有个验证简单些,网上的,大小比较就很简单了,可以直接当字符传比较<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script language=javascript>
String.prototype.isTime = function()
{
var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2})$/);
if(r==null)return false; var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],0);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]);
}
alert("2002-1-31 12:34".isTime());
alert("2001-2-29 12:54".isTime());
alert("2002-1-41 12:00".isTime());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]);
}
alert("2002-1-31".isDate());
alert("2001-2-29".isDate());
alert("2002-1-41".isDate());
</script>
</HEAD><BODY></BODY>
</HTML>
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script language=javascript>
String.prototype.isTime = function()
{
var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2})$/);
if(r==null)return false; var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],0);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]);
}
alert("2002-1-31 12:34".isTime());
alert("2001-2-29 12:54".isTime());
alert("2002-1-41 12:00".isTime());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]);
}
alert("2002-1-31".isDate());
alert("2001-2-29".isDate());
alert("2002-1-41".isDate());
</script>
</HEAD><BODY></BODY>
</HTML>
if(s.match(/^\d{4}-[0-1]?\d-[0-3]?[\d]$/g)==null){
alert("Error!")
return false;
}
var a = s.split("-")
y = parseInt(a[0]);
m = parseInt(a[1])-1;
t = parseInt(a[2]);
d = new Date(y,m,t);
if(d.getFullYear()!=y || d.getMonth()!=m || d.getDate()!=t){
alert("Error~!")
return false;
}
return true;
}
alert(check("2000-1-1"))
{
var re=/^\d{4}-\d{1,2}-\d{1,2}$/;
var r=str.match(re);
if (r==null)
{
alert("请按以下格式填写日期: yyyy-mm-dd!");
return false;
}
else
{
var s=str.split("-");
var years = parseInt(s[0]);
var months = parseInt(s[1]);
var days = parseInt(s[2]);
if (parseInt(s[0].substring(0,2))<19 || months>12 || months<1 || days>31 || days<1)
{
alert(请填写正确的日期);
return false
}
switch(months)
{
case 2:
if((years%4 == 0 && years%100 != 0) || (years%400 == 0))
{
if(days > 29)
{
alert(闰年二月没有+days+日!);
return false;
}
}
else
{
if(days > 28)
{
alert(平年二月没有+days+日!);
return false;
}
}
break;
case 4:
if(days > 30)
{
alert(四月没有+days+日!);
return false;
}
break;
case 6:
if(days > 30)
{
alert(六月没有+days+日!);
return false;
}
break;
case 9:
if(days > 30)
{
alert(九月没有+days+日!);
return false;
}
break;
case 1:
if(days > 30)
{
alert(十一月没有+days+日!);
return false;
}
break;
}
return true;
}
}
function isDate(str) {
var r = str.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]);
}