Я уверен, что есть и другие способы сделать это, но используя explode()
, разделите входящие данные в массив из [надеюсь] трех записей, используя «/» в качестве символа разделения.
Затем проверьте, находится ли первое значение в диапазоне 1..12, второе в диапазоне 1..31 и последнее в диапазоне 0..99.
Более сложная проверка обеспечит, чтобы для каждого месяца не превышалось соответствующее количество дней (для дополнительного кредита, допустите 29 в месяце 02, если и только если год делится на 4 равномерно (да, это портит все века, в которых первые две цифры не делятся на 4, но вы ограничены yy
для формата года)).
Если ввод слишком короткий (я бы сказал, 5 символов для 1/1/1) или слишком длинный (более 8 символов), он недопустим.
Лучшим форматом будет НЕ , требующий разделитель, и просто убедитесь, что строка имеет длину 6 символов, все числовые, и что каждая пара цифр находится в допустимом диапазоне.