繁体   English   中英

JavaScript日期验证不起作用

[英]Javascript date validation not working

因此,我尝试使用欧洲格式来验证日期输入,以便可以轻松将其插入到我的数据库中。 我收到一条错误消息,试图告诉我使用所需的格式,但是将正则表达式更改了大约十亿次后,我似乎仍然无法正常工作。

下面是我按下插入按钮时调用的JS脚本。

     function checkForm(form)
  {
    // regular expression to match required date format
    re = /^(\d{4})-(\d{1,2})-(\d{1,2})/>

    if(form.startdate.value != '') {
      if(regs = form.startdate.value.match(re)) {

             // year value between 1902 and 2017
        if(regs[1] < 1902 || regs[1] > (new Date()).getFullYear()) {
          alert("Invalid value for year: " + regs[1] + " - must be between 1902 and " + (new Date()).getFullYear());
          form.startdate.focus();
          return false;
        }

        // month value between 1 and 12
        if(regs[2] < 1 || regs[2] > 12) {
          alert("Invalid value for month: " + regs[2]);
          form.startdate.focus();
          return false;
        }
           // day value between 1 and 31
        if(regs[3] < 1 || regs[3] > 31) {
          alert("Invalid value for day: " + regs[3]);
          form.startdate.focus();
          return false; 
        }

      } else {
        alert("Invalid date format: " + form.startdate.value);
        form.startdate.focus();
        return false;
      }
    }
  }
    </script>

这就是所谓的insert php文件(它处理sql方面的问题),并且应该调用上述JS函数。 我不确定错误是否是因为我也在同一个提交按钮中插入了一个int量以及数据。

<form action="insertCarb.php" onsubmit="return checkForm(this)" method="post">
Carb Amount: <input type="text" name="CarbAmount" required/><br>
Date: <input type="text" name="Date" required pattern="/^(\d{4})-(\d{1,2})-(\d{1,2})/" placeholder="yyyy/mm/dd"/><br>
<input type="submit">
</form>

您可以更改以下代码:

<input type="text" name="Date" required pattern="/^(\d{4})-(\d{1,2})-(\d{1,2})/" placeholder="yyyy/mm/dd"/>

至:

 <input type="text" name="Date" required pattern="\d{4}-\d{1,2}-\d{1,2}" placeholder="yyyy/mm/dd"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM