Недавно я искал регулярное выражение для проверки даты на стороне клиента, и я не смог найти тот, который может удовлетворять следующим критериям:
- Имеет диапазон от 1800 - теперь
- Выполняет правильную проверку даты с летальными годами
- Форма MM/DD/YYYY
- Неверная проверка даты
(Эти ограничения были вне моей сферы действия и являются требованием для клиента, несмотря на мои попытки убедить их, что это не лучший маршрут)
Текущий код:
$('input').keyup(function()
{
var regex = /^(?:(0[1-9]|1[012])[\/.](0[1-9]|[12][0-9]|3[01])[\/.](18|19|20)[0-9]{2})$/;
$(this).toggleClass('invalid',!regex.test($(this).val()));
});
Update:
Я должен отметить, что это прежде всего, чтобы увидеть, возможно ли регулярное выражение, подобное этому (поскольку использование Regex не является моим выбором в этом вопросе). Я знаю другие (и лучшие) варианты для проверки даты, однако, как уже упоминалось ранее, это означает, что это возможно с помощью регулярного выражения.