php preg_match формат даты «гггг-ММ»

Я пытаюсь использовать модифицированный формат preg из preg_match: проверить формат дня рождения (дд/мм/гггг), чтобы он соответствовал датам истечения срока действия кредитной карты (форматы гггг-мм)

    if (!preg_match('/([0-9]{4})\-([0-9]{2})/', $expirationDate, $matches)) {
        throw new Services_Payment_Exception('Card expiration date is invalid');
    }

. По какой-то причине это также проверить недопустимые значения, такие как 20111-02 (недопустимый год). Что я здесь делаю неправильно? Я хочу подтвердить, что год - 4 цифры, а месяц - 2 цифры (01, 02.. 12)

5
задан Community 23 May 2017 в 11:48
поделиться