Reg Exp для даты в формате MM / YY - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть маска для даты в формате MM / YY.Должно быть month> = тогда текущий , а year> = тогда текущий year.

У меня есть шаблон регулярного выражения здесь:

<input id="expiration" type="tel" placeholder="MM/YY" class="masked" pattern="(1[0-2]|0[1-9])\/(1[8-9]|2\d)" data-valid-example="12/18" onchange="onChangeInput(event)"/>

Похоже, что это нормально для этого формата, но я все еще могу написать год меньше 18.

Нужна небольшая помощь от вас, переполнение стека.

1 Ответ

0 голосов
/ 23 ноября 2018

Шаблон выглядит нормально, однако, как уже отмечалось, использование tel типа ввода, вероятно, не очень хорошая идея, так как оно семантически несовместимо.

Вы можете попробовать использовать скрипт вместо того, чтобы полагаться на проверку браузером, так как поддержка неоднозначна.Может подойти что-то вроде следующего.

function validateInput(evt) {
  var re = new RegExp(this.pattern);
  var s = this.value;
  // Show whether value is valid or not when input is full
  document.querySelector('#s0').textContent = s.length < 5 || re.test(s)? '' : 'Invalid';
}

window.onload = function(){
  document.querySelector('#i0').addEventListener('input',validateInput, false);
};
<input id="i0" type="text" placeholder="MM/YY" pattern="(1[0-2]|0[1-9])\/(1[8-9]|2\d)" maxlength="5"><br>
<span id="s0"></span>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...