http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=173751

解决方案 »

  1.   

    <script>
    function IsDate(str){
    var re=/^(\d{4})-(\d{1,2})-(\d{1,2})$/
    if(!re.test(str))return false;
    var r=str.match(re)
    var d=new Date(r[1],r[2]-1,r[3])
    return d.getFullYear()==r[1]&&d.getMonth()==r[2]-1&&d.getDate()==r[3]
    }
    alert(IsDate("2000-2-30"))
    </script>
      

  2.   

    var re=/^(\d{4})-((1[0-2])|(0?[1-9]))-((3[0-1])|([1-2][0-9])|(0?[1-9]))$/此表达式规定:日期在1-31,月份在1-12,且允许类似“01”的格式存在
      

  3.   

    如果要限度年份在 1900-2100之间,可以:var re=/^(19|20)\d{2}-((1[0-2])|(0?[1-9]))-((3[0-1])|([1-2][0-9])|(0?[1-9]))$/至于2001-2-29,2000-6-31之类的,一个表达式很难判断
      

  4.   

    我综合了阿信和Yashmak的解决了总是,可不明白的是,为什么不能用[1-31]{1,2}去匹配日子的范围是从1至31呢?
      

  5.   

    如果在页面上,你可以使用CompareValidator,设置它检查格式,里面有DateTime
      

  6.   

    你是说在什么工具里设置,frontpage?DW?