Javascript 如何在日期字段中限制日期格式

Javascript 如何在日期字段中限制日期格式,javascript,php,Javascript,Php,我正在尝试实现一个功能,当输入错误格式的日期并按下提交按钮时,将显示一个警报框。我的表单中有六个日期字段 我似乎找不到在我的字段输入中显示如何实现函数的正则表达式示例,而只显示了如何实现函数本身。我想把它限制在YYYY-MM-DD。在这里发帖是我最后的选择,我找了很长时间都没有用。有人能帮忙吗 function validate_date() { var date_regex = /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(19|20)\d{2

我正在尝试实现一个功能,当输入错误格式的日期并按下提交按钮时,将显示一个警报框。我的表单中有六个日期字段

我似乎找不到在我的字段输入中显示如何实现函数的正则表达式示例,而只显示了如何实现函数本身。我想把它限制在YYYY-MM-DD。在这里发帖是我最后的选择,我找了很长时间都没有用。有人能帮忙吗

function validate_date() {
    var date_regex = /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$/ ;
    if(!(date_regex.test(testDate)))
    {
    alert('Wrong format!');
    return false;
    }
   }                

<input type="text" class="form-control" id="empexpiry" style="width:350px;" placeholder="Nothing on File" name="empexpiry" value=""
函数验证\u日期(){
var date_regex=/(0[1-9]| 1[0-2])\/(0[1-9]| 1\d | 2\d | 3[01])\/(19 | 20)\d{2}$/;
如果(!(日期\正则表达式测试(测试日期)))
{
警报(“格式错误!”);
返回false;
}
}                

如果我是你,我会使用一些插件。有很好的香草和jQuery插件来验证表单(例如)

但是如果你想自己做的话:

收听表单的提交事件,并使用regex验证所有条目

要验证的函数可以是这样的

function isDateValid (dateStr) {
  let isValid = dateStr.match(/[0-9]{4}-[0-9]{2}-[0-9]{2}/)

  if (!isValid) return false

  const dateObj = new Date(dateStr);
  isValid = dateObj != 'Invalid Date'

  return isValid
}
您收听提交的功能可以是这样的:

function validateForm (e) {

   const input1 = document.getElementById("input1").text

   if (!isDateValid(input1)) {
     alert('invalid')
     e.preventDefault()
     return false
   }

   /* And so on */
}

我发现HTML5模式属性是所有需要的。简单

<input id="date" type="text" pattern="\d{4}-\d{1,2}-\d{1,2}" oninvalid="setCustomValidity('Please make sure the date follows this format: YYYY-MM-DD')" required="required"/>    


显示您的代码。您尝试了什么?你的代码在哪里失败?看:o)为什么不使用datepicker@Anandhunadesh将jQuery用于如此简单的任务有点夸张,但这不会验证闰年之类的东西,甚至不会验证2017-99-99之类的废话。您仍然需要在PHP中验证日期服务器端,因为知识渊博和/或恶意用户很容易绕过客户端代码。因此,增强GUI的用户友好性很好,但您不能依靠它来实际验证任何内容。@ADyson我只是想确保日期格式为YYYY-MM-DD,我不介意任何其他验证。