Страницы

Поиск по вопросам

четверг, 5 марта 2020 г.

Проверка, чтобы все числа номера телефона были не одинаковые

#javascript #jquery


В продолжение своего вопроса о маске телефона возник еще один вопрос.

Как можно усовершенствовать код ( регулярное выражение), чтобы НЕ было возможности
ввести все цифры одинаковыми? Т.е. Если пользователь вводит номер +7(111)111-1111 должна
появляться ошибка, но если например так: +7(111)111-1112, то все отлично. 



$('form').validate();
$('.js-phone').mask("+7(999)999-9999", {autoclear: false});

jQuery.validator.addMethod("checkMask", function(value, element) {
  return /\+\d{1}\(\d{3}\)\d{3}-\d{4}/g.test(value); 
});
label {
  display: block;
  margin: 10px 0;
}

.error {
  color: red;
}



  


Ответы

Ответ 1



Не уверен, что можно обойтись одним регулярным выражением, но можно добавить второе регулярное выражение, в котором проверить, что все цифры одинаковые. Для этого можно воспользоваться возможностью проверять уже найденные группы например: /\+\d\((\d){3}\)\1{3}-\1{4}/g Пример: $('form').validate(); $('.js-phone').mask("+7(999)999-9999", { autoclear: false }); jQuery.validator.addMethod("checkMask", function(value, element) { return /\+\d{1}\(\d{3}\)\d{3}-\d{4}/g.test(value) && !/\+\d\((\d){3}\)\1{3}-\1{4}/g.test(value); }); label { display: block; margin: 10px 0; } .error { color: red; }


Комментариев нет:

Отправить комментарий