js检查日期的问题

1<input name="date1" type="text" value="2002-02-02"/>

文本框里必须输入以上格式的日期才能提交,否则出错?请问怎么用js检查???
谢谢.
---------------------------------------------------------------

 1<script language="javascript">   
 2function strDateTime(str)   
 3{   
 4var reg = /^(\d{1,4})(- ¦\/)(\d{1,2})\2(\d{1,2})$/;   
 5var r = str.match(reg);   
 6if(r==null)return false;   
 7var d= new Date(r[1], r[3]-1,r[4]);   
 8var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()   
 9return newStr==str   
10}   
11alert(strDateTime("2002-1-31"))   
12alert(strDateTime("2002-1-41"))   
13</script>

---------------------------------------------------------------

1<input name="date1" onblur="check(this)" type="text" value="2002-02-31"/>
 1<script>   
 2function check(obj){   
 3if(strDate(obj.value)==false){alert('Error');obj.select();};   
 4}   
 5function strDate(str){   
 6var reg = /^(\d{1,4})(- ¦\/)(\d{1,2})\2(\d{1,2})$/;   
 7var r = str.match(reg);   
 8if(r==null)return false;   
 9var d= new Date(r[1], r[3]-1,r[4]);   
10if(r[1]!=d.getFullYear())return false;   
11if(r[3]!=(d.getMonth()+1))return false;   
12if(r[4]!=d.getDate())return false;   
13return true;   
14}   
15</script>

---------------------------------------------------------------

上述两方法对于“2003/01/20”也认为是正确的。
---------------------------------------------------------------

//下面是我用的函数,你试试吧
function isDate(datestr)
{
var myDatestr = datestr+"";
var aryDate = myDatestr.split('-');
if (aryDate.length!=3) return false;
var myYear = parseInt(aryDate[0]);
var myMonth = parseInt(aryDate[1]);
var myDay = parseInt(aryDate[2]);
if ((aryDate[0].length!=4) ¦ ¦(aryDate[1].length>2) ¦ ¦(aryDate[2].length>2)) return false;
if ((aryDate[1].length<1) ¦ ¦(aryDate[2].length<1)) return false;
if (isNaN(myYear) ¦ &brvbarisNaN(myMonth) ¦ &brvbarisNaN(myDay)) return false;
if ((myMonth>12) ¦ ¦(myMonth<1)) return false;
if (Date_getDay(myYear,myMonth)<myDay) return false; return true;
}

Published At
Categories with Web编程
comments powered by Disqus