#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; }
Комментариев нет:
Отправить комментарий