JS скрипт маски чисел

287
02 апреля 2017, 04:21

Добрый день. Помогите реализовать следующую задачу на JS.

Есть поле input. В него можно вводить только числа. Нужно автоматически подставлять маску по следующим правилам

если 5 чисел: Z-ZZ-ZZ
если 6 чисел: ZZ-ZZ-ZZ
если 7 чисел: ZZZ-ZZ-ZZ
Answer 1

Слушать событие "input". Брать содержание input и выкидывать всё, кроме цифр. Последовательность цифр форматировать: перевести в массив и вставить в нужных местах дефисы, как вариант.

var el = document.getElementById("in"); 
function update() { 
  var n = el.value.replace(/[^0-9]/g,'') // оставить только цифры 
    .split('').reverse(); // перевестив массив и развернуть 
  if(n.length > 2) n.splice(2,0,'-'); 
  if(n.length > 5) n.splice(5,0,'-'); 
  el.value = n.reverse().join(''); 
} 
 
el.addEventListener("input", update);
<input id="in" type="text" placeholder="ZZZ-ZZ-ZZ">

READ ALSO
Передать значение из одной функции в другую

Передать значение из одной функции в другую

Как из функции GetNewUserId передать значение id в функцию AddUser

259
Autocomplete, работа с JSON

Autocomplete, работа с JSON

Добрый деньУ меня следующий вопрос: есть поле input с jquery autocomplete

326
Переключение nav-tabs bootstrap при клике по ссылке

Переключение nav-tabs bootstrap при клике по ссылке

На сайте есть раздел новостей, с двумя nav-tabs, они сейчас работаю корректно (переключаются между собой), но когда мы уже зашли в этот раздел,...

257
как получить эффект при скролле где элементы двигаются

как получить эффект при скролле где элементы двигаются

есть div-ы с текстом и изначальном opacity 04 и позиционированные на левом краю окна

241