Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery验证字符串是否为日期_Javascript_Jquery - Fatal编程技术网

Javascript 如何使用jquery验证字符串是否为日期

Javascript 如何使用jquery验证字符串是否为日期,javascript,jquery,Javascript,Jquery,如何分析字符串是否为有效日期。我尝试了网络上的一切,但没有任何效果。我知道这个问题以前被问过很多次,但即使在那些说他们解决了问题的线程中,也不适用于我。我开始问自己有没有办法。 我将把我的代码发送到这里。我有三个文本框:一个表示日期,一个表示月份和年份,在提交表单时,我需要检查它们是否构成有效日期 <html> <head> <title>Simple Form Validation</title> <script type

如何分析字符串是否为有效日期。我尝试了网络上的一切,但没有任何效果。我知道这个问题以前被问过很多次,但即使在那些说他们解决了问题的线程中,也不适用于我。我开始问自己有没有办法。 我将把我的代码发送到这里。我有三个文本框:一个表示日期,一个表示月份和年份,在提交表单时,我需要检查它们是否构成有效日期

<html> 
  <head> 
  <title>Simple Form Validation</title> 
  <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 
  <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script> 
  <script type="text/javascript">

         jQuery.validator.addMethod(
               "customDateValidator",
                function(value, element) {
                 var concateDate;
                 concateDate= $("#day").val() + "/" + $("#month").val() + "/" + $("#year").val();        

                    var rslt= (Date.parseExact(concateDate, "d/M/yyyy") );
                    if(isNaN(rslt))
                      return false;
                    else
                     return true;               
                    },
                    "Please enter a valid date"
                );
  </script>

  <script type="text/javascript"> 
    $(document).ready(function() { 
      $("#form1").validate({ 
        rules: { 

        year: { 
          customDateValidator: true 
        } 
        }, 
        messages: { 
          year: "Please enter valid datum." 
        } 
      }); 
    }); 
  </script>  

  </head> 

  <body> 
    <form id="form1" method="post" action=""> 
      <div class="form-row"><span class="label">Day *</span><input type="text" name="day" id="day" /></div> 
      <div class="form-row"><span class="label">Month *</span><input type="text" name="month" id="month" /></div> 
      <div class="form-row"><span class="label">Year</span><input type="text" name="year" id="year" /></div> 
      <div class="form-row"><input class="submit" type="submit" value="Submit"></div> 
    </form> 
  </body> 
</html> 

简单表单验证
jQuery.validator.addMethod(
“customDateValidator”,
函数(值、元素){
var concateDate;
concateDate=$(“#天”).val()+“/”+$(“#月”).val()+“/”+$(“#年”).val();
var rslt=(Date.parseExact(concateDate,“d/M/yyyy”);
如果(isNaN(rslt))
返回false;
其他的
返回true;
},
“请输入有效日期”
);
$(文档).ready(函数(){
$(“#form1”).validate({
规则:{
年份:{
customDateValidator:true
} 
}, 
消息:{
年份:“请输入有效数据。”
} 
}); 
}); 
第天*
月份*
年

我就是这样做的,效果很好

rules: {
  month: { required: true },
  day: { required: true },
  year: { required: true, date_check: function(){ return $("#month").val()+'/'+$("#day").val()+'/'+$("#year").val() } }
}

jQuery.validator.addMethod("date_check",function(a,b,c){
    month = c.substring(0,2)-1;
    day = c.substring(3,5);
    year = c.substring(6,10);
    mSeconds = (new Date(year, month, day)).getTime();
    objDate = new Date();
    objDate.setTime(mSeconds);
    if(objDate.getFullYear() != year || objDate.getMonth() != month || objDate.getDate() != day) {
        return false;
    }
    return true;
}, "Please provide a valid date.");

但它不支持全球化。OP使用的是dd/mm/yyyy,在这个答案中,您使用的是mm/dd/yyyy。然后修改它以供您使用吗?这不太难。