Как изменить американд в parsley exte.js, чтобы проверять только месяц и год

В Parsley есть метод расширения.js для проверки ошибок на неправильные даты. например: M/D/YY

Я хотел бы изменить это, чтобы проверить только месяц и год. например: ММ / ГГГГ

 americandate: function ( val, elem, self) {
        if(!/^([01]?[0-9])[\.\/-]([0-3]?[0-9])[\.\/-]([0-9]{4}|[0-9]{2})$/.test(val)) {
            return false;
        }
        var parts = val.split(/[.\/-]+/);
        var day = parseInt(parts[1], 10);
        var month = parseInt(parts[0], 10);
        var year = parseInt(parts[2], 10);
        if(year == 0 || month == 0 || month > 12) {
          return false;
        }
        var monthLength = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
        if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) {
          monthLength[1] = 29;
        }
        return day > 0 && day <= monthLength[month - 1];
      }

1 ответ

Решение

Сложность вашей функции предназначена для обеспечения правильного количества дней в месяце.

Для всех дат (в недавней истории) требуется 1-12 в поле месяцев и 2 или 4 цифры в поле лет. Почему бы просто не написать простое регулярное выражение для проверки даты, состоящей из правильных символов.

\b(1[12]|0?[1-9])[.\/-]([0-9]{2}?[0-9]{2})\b

Другие вопросы по тегам