能不能具体说一下正则表达式?

解决方案 »

  1.   

    js的://函数名:chkdate
    //功能介绍:检查是否为日期
    //参数说明:要检查的字符串
    //返回值:0:不是日期  1:是日期
    function chkdate(datestr)
    {
    var lthdatestr
    if (datestr != "")
    lthdatestr= datestr.length ;
    else
    lthdatestr=0;

    var tmpy="";
    var tmpm="";
    var tmpd="";
    //var datestr;
    var status;
    status=0;
    if ( lthdatestr== 0)
    return 0
    for (i=0;i<lthdatestr;i++)
    { if (datestr.charAt(i)== '-')
    {
    status++;
    }
    if (status>2)
    {
    //alert("Invalid format of date!");
    return 0;
    }
    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)
    //tempdate= new String (year+month+day);
    //alert(tempdate);
    if ((tmpy.length!=4) || (tmpm.length>2) || (tmpd.length>2))
    {
    //alert("Invalid format of date!");
    return 0;
    }
    if (!((1<=month) && (12>=month) && (31>=day) && (1<=day)) )
    {
    //alert ("Invalid month or day!");
    return 0;
    }
    if (!((year % 4)==0) && (month==2) && (day==29))
    {
    //alert ("This is not a leap year!");
    return 0;
    }
    if ((month<=7) && ((month % 2)==0) && (day>=31))
    {
    //alert ("This month is a small month!");
    return 0;

    }
    if ((month>=8) && ((month % 2)==1) && (day>=31))
    {
    //alert ("This month is a small month!");
    return 0;
    }
    if ((month==2) && (day==30))
    {
    //alert("The Febryary never has this day!");
    return 0;
    }

    return 1;
    }