Создать из с вводом даты в формате без специальных символов + проверка - PullRequest
0 голосов
/ 26 апреля 2019

Я хочу создать форму, которая потребует от пользователя ввода даты в следующем формате: «ddmmyyyy».Без косой черты, без точек, без других специальных символов.И я хочу, чтобы только использование этого формата было допустимым, в противном случае я хочу создать сообщение об ошибке.Так, например, допустимые ответы будут:

08101974 22032019 01011987

, а недействительные ответы будут:

40779999 88229933 10152000

Спасибо!

1 Ответ

2 голосов
/ 26 апреля 2019

Вы можете использовать регулярные выражения и функцию 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]) соответствует любому дню в формате 0n или n с начала
  2. (0?[1-9]|1[012]) соответствует любомумесяц в 0n или n в формате 0-12 с начала
  3. \d{4} соответствует любому четырехзначному номеру года непосредственно перед концом строки
...