Я пытаюсь изменить входное значение с любых возможных символов на что-то похожее на номер кредитной карты (поэтому я хочу принимать только цифры и пробелы).Основное различие между моим номером и номером кредитной карты, типичным регулярным выражением, заключается в том, что мне нужно сопоставить 1 цифру, а затем группы из 4 цифр.
Правильный номер: 1 1234 1234
Неправильные числа: 12 1234 123, 1234 1234 1
Я создал регулярное выражение, чем удалил все, кроме чисел, но с трудом добился выше.
Получил что-то вроде этого:
this.rewardsNumber = this.rewardsNumber
.replace(/[^\d]/g, '')
.replace(/(.{4})/g, '$1 ')
.trim();
Это добавляет пробелы после каждых 4 цифр.Я хочу добавить 1-й пробел после 1-й цифры, а затем после еще 4 и т. Д.
ОБНОВЛЕНИЕ
Нашел решение, которое хорошо работает при вставке значения во ввод (оно добавляетместо на лету в правильных местах).
this.rewardsNumber = this.rewardsNumber
.replace(/[^\d]/g, '')
.replace(/(.{1})(.{1,3})/g, '$1 $2')
.trim();
PS: Не заботьтесь о числах после второй группы из 4-х цифр.Вход имеет ограничение.