JavaScript регулярное выражение для даты, разделенной запятой - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу проверить дату, разделенную запятой в JavaScript.

Дата может быть одной датой, например: 11-29-2018

Или несколькими датами, подобной этой: 11-29-2018, 12-20-2018, ...

Оба случая должны быть подтверждены.

Я нашел регулярное выражение для PHP, которое проверяет оба случая выше.Но я не знаю, как преобразовать его в регулярное выражение JavaScript, чтобы он работал.

PHP Regex:

/^((?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])-[0-9]{4})(?:,\s*(?1))*$/

1 Ответ

0 голосов
/ 29 ноября 2018

Видя, что вы новый посетитель SO, я могу дать вам несколько подсказок

  • Регулярные выражения не проверяют даты.02-29-2019 - допустимый формат даты
  • Проверка объекта даты на наличие того же дня, месяца, года.

Например, обратите внимание на результат ниже.Недействительный 02-29-2019 создает дату 1 марта

"11-29-2018,02-29-2019".split(",").forEach(function(d) {
   var date = new Date(d);
   date.setHours(12,0,0) // make it easier to handle timezones
   var testMonth = d.split("-")[0]-1; // notice the month is 0 based
  console.log(date, date.getMonth(), testMonth===date.getMonth()); 
})  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...