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