Страницы

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

среда, 22 мая 2019 г.

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

В продолжение своего вопроса о маске телефона возник еще один вопрос.
Как можно усовершенствовать код ( регулярное выражение), чтобы НЕ было возможности ввести все цифры одинаковыми? Т.е. Если пользователь вводит номер +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; }



Ответ

Не уверен, что можно обойтись одним регулярным выражением, но можно добавить второе регулярное выражение, в котором проверить, что все цифры одинаковые.
Для этого можно воспользоваться возможностью проверять уже найденные группы например:
/\+\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; }


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

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