<script language=javascript>
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]);
}
alert(isDate("2002-01-31"));
alert(isDate("2002-01-41"));
</script>

解决方案 »

  1.   

    function gfisDate(ymd){
    if(ymd==undefined){
    return(false);
    }
    if(ymd==""){
    return(false);
    }
    var d=ymd.split("-");
    if(d.length!=3){
    return(false);
    }
    if(isNaN(d[0]) || isNaN(d[1]) || isNaN(d[2])){
    return(false);
    }
    if(eval(d[0])==0||eval(d[1])==0||eval(d[2])==0){
    return(false);
    }
    var dt=new Date();
    dt.setDate(1);
    dt.setFullYear(eval(d[0]));
    dt.setMonth(eval(d[1])-1);
    dt.setDate(eval(d[2]));
    if(eval(d[0])!=dt.getFullYear()){
    return(false);
    }
    if(eval(d[1])!=dt.getMonth()+1){
    return(false);
    }
    if(eval(d[2])!=dt.getDate()){
    return(false);
    }
    return(true);
    }
      

  2.   

    meizz(梅花雪)的答案是标准的.