Проверка срока действия кредитной карты Javascript - PullRequest
0 голосов
/ 15 марта 2019

В настоящее время я использую валидацию javascript для проверки того, что пользователь вводит правильную дату, однако мои текущие шаблоны регулярных выражений не подтверждают, что пользователь не должен иметь возможность вводить дату меньше, чем 03/19.Вместо этого он допускает 01/19, а также 02/19 и т. Д.

Я полагаю, что есть другие способы сделать эту проверку в javascript, однако мне было интересно, есть ли способ с этим регулярным выражением.

текущий JavaScript:

var errdiv = $(".error");
  $("#form").validate({
    rules: {
      cardmm: {
        required: true,
        minlength: 2,
        maxlength: 2,
        pattern: "^(1[0-2]|[0-9]|)$"
      },
      cardyy: {
        required: true,
        minlength: 2,
        maxlength: 2,
          pattern: "^(2[0-8]|19|)$"
      },
    },
    messages: {
      cardmm: {
        required: "Please enter valid details.",
        minlength: "Please enter valid details.",
        maxlength: "Please enter valid details.",
        max: "Please enter valid details.",
        pattern: "Please enter valid details."
      },
      cardyy: {
        required: "Please enter valid details.",
        minlength: "Please enter valid details.",
        maxlength: "Please enter valid details.",
        pattern: "Please enter valid details."
      },
    },
    errorPlacement: function(error, element, m) {
      errdiv.css({"display": "block"});
      errdiv.empty();
      errdiv.text(error[0].innerHTML);
    },
    success: function(error) {
        error.removeClass("error");  // <- no, no, no!!
        errdiv.css({"display": "none"});
    }
  });

Ответы [ 2 ]

1 голос
/ 15 марта 2019

Вы можете разбить задачу на 2 части: регулярное выражение для любой даты с годом, превышающим 2019, и другое для определенных месяцев, которые вы хотите разрешить на 2019 год, а затем объединить их в окончательное регулярное выражение.

0 голосов
/ 15 марта 2019

Вы всегда можете вызвать маленький скрипт, который объединяет поля mm и yy формы для проверки в целом.

Присоединяйтесь к полям с косой чертой.

Регулярное выражение проверки:

^(?:(?:0?[3-9]|1[0-2])/19|(?:0?[1-9]|1[0-2])/2[0-8])$

Расширен

 ^ 
 (?:
      (?: 0? [3-9] | 1 [0-2] )
      /19
   |  
      (?: 0? [1-9] | 1 [0-2] )
      /2 [0-8] 
 )
 $ 

В противном случае это не может быть проверено отдельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...