Jquery inputmask регулярное вырожение

Подскажите пжл. создал поле input в котором есть jquery inputmaska +7(___) ___ __ __ как мне сделать что первым числом нельзя было вводить 7 и 8 а далее можно было вводить уже их и любые числа кроме текста конечно и символов. Полдня ищу решения не работает, пробую через регулярное выражение, но не хочет работать, можете подсказать решение? делаю вот так

$('.tel').inputmask("mask", { "mask": "+7(999) 999-99-99", "clearIncomplete": false, "showMaskOnHover": true, "showMaskOnFocus": false, definitions: { "9": { validator: "[^7,8]" } } }); });

Но 7 и 8 первыми не работают, но и дальше их вставить нельзя ((


Ответы (1 шт):

Автор решения: Wiktor Stribiżew

Вам нужно переопределить шаблон для символа, который идёт сразу после (. Сейчас это 9, то есть любая цифра. Вам же нужен шаблон [0-69], то есть любая цифра кроме 7 и 8.

Определите собственный шаблон и используйте его вместо 9. В нижеприведённом коде этот шаблон приписан символу *, так как он у вас не используется, и поэтому маска выглядит как "mask": "+7(*99) 999-99-99":

$(document).ready(function () {
  $('.tel').inputmask("mask", {
     "mask": "+7(*99) 999-99-99",
     "clearIncomplete": true,
     "showMaskOnHover": true,
     "showMaskOnFocus": false,
     "definitions": { '*': { "validator": "[0-69]" }}
  });
})
.wrap {
         height: 100vh;
         display: -webkit-flex;
         display: -moz-flex;
         display: -ms-flex;
         display: -o-flex;
         display: flex;
         -ms-align-items: center;
         align-items: center;
         justify-content: center;
      }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://rawgit.com/RobinHerbots/jquery.inputmask/3.x/dist/jquery.inputmask.bundle.js"></script>
<div class="wrap">
    <input type="text" class="tel">
</div>

→ Ссылка