使用日期输入创建日期格式,格式不带特殊字符+验证

时间:2019-04-26 06:28:32

标签: jquery html validation date input

我想创建一个表单,该表单将要求用户以以下格式输入日期:“ ddmmyyyy”。没有斜线,没有点,没有其他特殊字符。而且我只想使用这种格式才有效,否则我想生成一条错误消息。 所以-例如,有效答案将是:

08101974 22032019 01011987

无效答案将是:

40779999 88229933 10152000

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用正则表达式和javascript .match()函数

$("#theForm").on("submit", function(e){
  e.preventDefault();
  
  var theDate = $("input[name='date']").val().trim();
  var dateMatch = theDate.match(/^(0?[1-9]|[12][0-9]|3[01])(0?[1-9]|1[012])\d{4}$/im);
  if (dateMatch)
    alert("Correct!!!")
  else
    alert("Invalid date dude!!!")
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<form id="theForm">
  <label>Date: </label>
  <input type="text" name="date"/>
  <input type="submit" />
</form>

  1. ^(0?[1-9]|[12][0-9]|3[01])从头开始以0nn格式匹配任意一天
  2. (0?[1-9]|1[012])从头开始匹配0n格式的n0-12的任何月份
  3. \d{4}与字符串末尾的一年中的任何四位数字匹配