javascript / Jquery - проверить, существует ли число перед символом - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть текстовое поле, которое позволяет пользователю вводить только числовые значения и значения 'y' и 'm'.

function ValidateAge(evt) {
  evt = (evt) ? evt : window.event;
  var charCode = (evt.which) ? evt.which : evt.keyCode;
  if ((charCode == 89) || (charCode == 77) || (charCode == 109) || (charCode == 121)) {
    return true;
  }
  if ((charCode > 31 && (charCode < 48 || charCode > 57))) {
    return false;
  }
  return true;
}

Как проверить текстовое поле, чтобы убедиться, что перед «у» и «м» всегда должно быть число.

Обновление:

  1. Всегда будет либо y, либо m.
  2. y, и m всегда должно предшествовать число
  3. И Y, и M могут быть в текстовом поле
  4. Y иm можно вводить как в нижнем, так и в верхнем регистре

1 Ответ

0 голосов
/ 11 ноября 2019

Вы можете использовать следующее регулярное выражение:

function ValidateAge(text){
  var reg = new RegExp(/^((\d+)y*m*)+$/ig); // 'ig': Case insensitive match
  return reg.test(text);
}

ValidateAge('123m'); // true
ValidateAge('1y'); // true
ValidateAge('a123m'); // false
ValidateAge('123ms'); // false
ValidateAge('1ymmmmm1y1m1y22yyyy3'); // true
ValidateAge('1my'); // false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...