今天在我做的高级搜索页面中添加了一个检验输入日期格式的脚本编码,主要验证客户端输入的日期形式是否为(YYYY-MM-DD)以及验证输入的日期是否合法.
<script language="javascript">
function chkdate()
{
var datestr;
datestr=form1.t1.value;
var lthdatestr;
if (datestr != "")
{lthdatestr= datestr.length} ;
else
{lthdatestr=0};
var tmpy="";
var tmpm="";
var tmpd="";
var status;
status=0;
/*if ( lthdatestr== 0)
{alert("请输入日期.不能为空")
return false;}*/
for (i=0;i<lthdatestr;i++)
{ if (datestr.charAt(i)== '-')
{
status++;
}
if (status>2)
{
alert("日期形式错误!请输入日期格式如(2006-01-01)")
return false;
}
if ((status==0) && (datestr.charAt(i)!='-'))
{
tmpy=tmpy+datestr.charAt(i);
}
if ((status==1) && (datestr.charAt(i)!='-'))
{
tmpm=tmpm+datestr.charAt(i);
}
if ((status==2) && (datestr.charAt(i)!='-'))
{
tmpd=tmpd+datestr.charAt(i);
}
}
year=new String (tmpy);
month=new String (tmpm);
day=new String (tmpd);
if ((tmpy.length!=4) || (tmpm.length!=2) || (tmpd.length!=2))
{
alert("日期格式错误!请输入日期格式如(2006-01-01)");
return false;
}
if (!((1<=month) && (12>=month) && (31>=day) && (1<=day)) )
{
alert("您输入的日期有错误,请重新输入");
return false;
}
if (!((year % 4)==0) && (month==2) && (day==29))
{
alert("该年2月没有29日这一天,请检查后输入正确日期");
return (false);
}
if ((month<=7) && ((month % 2)==0) && (day>=31))
{
alert("您输入的日期有错误,请检查后输入正确日期");
return false;
}
if ((month>=8) && ((month % 2)==1) && (day>=31))
{
alert("您输入的日期有错误,请检查后输入正确日期");
return false;
}
if ((month==2) && (day==30))
{
alert("您输入的日期有错误,请检查后输入正确日期");
return false;
}
return true;
}
</script>