求高手帮忙写这样的一个字符串验证。
是一个表示时间的字符串:是固定的这样的格式:2010.5.1 20:30      2010.12.31 21:23就是写一个这样的验证函数,就是要符合常理,比如4月只有三十天 输入4.31 就是错的。。
求高手帮忙写一个不胜感激哈

解决方案 »

  1.   

    function checkDate(dStr)
    {
     dStr=dStr.replace(/\./g,"/")
     if(new Date(dStr).toString()=="NaN")return false;
     else return true;
    }
    //测试用例
    if(!checkDate("2008.5.1 3:15:13"))alert("时间类型错误!=====测试1");
    if(!checkDate("2008.5.100 93:15:13"))alert("时间类型错误!=====测试2");
    if(!checkDate("2008.13.1 93:15:13"))alert("时间类型错误!=====测试3");
      

  2.   

    function checkDate(dStr)
    {
     dStr=dStr.replace(/\./g,"/");
     d = new Date(dStr).toString();
     if(d=="NaN" || d =="Invalid Date")return false;
     else return true;
    }
    为了兼容chrome,改成这样
      

  3.   


    说一下啊,就是我的那个“2010.5.1 20:30”是通过表单获取传过来的,那个是我强制用户输入的固定格式。
    还有就是麻烦您能解释一下您写得各个步骤么?我是JavaScript菜鸟,懂的太少了
      

  4.   

    dStr=dStr.replace(/\./g,"/");//将.替换为/,2010.5.1 20:30就会变为2010/5/1 20:30
    new Date(dStr).toString();//将字符串转换为时间,然后toString
    d=="NaN" || d =="Invalid Date"//在ie和ff中,如果转换不成功,就是NaN,在chrome中就是Invalid Date
      

  5.   

    try...<script type="text/javascript">
        var data = ["2010.5.1 20:30", "2010.12.31 21:23"];
        var reg = /^(?:(?!0000)[0-9]{4}\.(?:(?:0?[1-9]|1[0-2])\.(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\.(?:29|30)|(?:0?[13578]|1[02])\.31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)\.0?2\.29)\s+([01][0-9]|2[0-3]):[0-5][0-9]$/;
        for(var i=0;i<data.length;i++)
        {
            document.write("源字符串:" + data[i] + "   验证结果:" + reg.test(data[i]) + "<br />");
        }  
    </script>
      

  6.   

    <script>
    alert(checkDate("2008.5.31 12:30"));
    alert(checkDate("2008.5.32 12:30"));

    function checkDate(dStr){
    dStr=dStr.replace(/[.]/g,"/");
    var arr1=dStr.split(/[^\d]+/g);
    var d=new Date(dStr);

    if(d=="NaN")return false;
    var arr2=d.toLocaleString().split(/[^\d]+/g); for(var i=0;i<arr1.length;i++)
    if(arr1[i]!=arr2[i])return false;
    return true;
    }</script>
      

  7.   

    假如dStr是个乱七八糟的字符串 比如说是adsfk你就无法报错
      

  8.   

    我现在有一个很纠结的问题啊就是我在把表单数据提交到php前根本就无法用js验证数据啊
    我是这样写的<form id="formyuyue" name="formyuyue" method="post" action="insert_a.php?<?php $id=$_GET['id']; echo "id=$id"; ?>"  onsubmit="return check()" >这哪里有错啊