@sportredwhite

Как проверить поле банковской карточки?

Подскажите плз, как сделать алгоритм, чтобы можно было в поле вводить 16 знаков(по 4 с пробелом) и только цифры

Проблемы:
1. Регулярка не правильно написана, если вводить буквы, то появляются пробелы(
2. После удаления символа надо уменьшить i, не знаю как это сделать

Пример
this.elems.numberInput.addEventListener('input', function() {
      this.value = this.value.replace(/[^0-9\s]/gi, '');
      i++;
      if (i === 4) {
        this.value += ' ';
        i = 0;
      }

      if (this.input.length > 0) {
        i--;
      }

      self.sliceText(this, 19);
    });
  }

  sliceText(input, value) { // Обрезает  строку до value
    if (input.value.length > value) {
      input.value = input.value.slice(0, value);
   }
  • Вопрос задан
  • 84 просмотра
Решения вопроса 2
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
0xD34F
@0xD34F Куратор тега JavaScript
numberInput.addEventListener('input', ({ target: t }) => {
  t.value = ((t.value.match(/\d/g) || []).join('').match(/\d{1,4}/g) || []).join(' ');
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы