Как добавить пробел (между тысячами) в строке input?

Пример:
https://codepen.io/workcode/pen/qBBEMXj

Проблемы:
1) До 4-ой цифры все окей, но 5-ю цифру даже написать не могу
2) Если удалить все цифры, то получаю в input что "это не число", сделал проверку, но не срабатывает
3) Проблема с точкой, то не могу поставить точку
  • Вопрос задан
  • 878 просмотров
Решения вопроса 1
@dimoff66
Кратко о себе: Я есть
1) Перед проверкой паттерна тоже удалите из него пробел, будет давать ввести больше 4 цифр
if (!(value..replace(/\s/g, '').match(pattern))

onkeyup перепишите в виде
document.getElementById('input').onkeyup = function() {
  val_input = document.getElementById('input').value;
  val_input = val_input.replace(/\s/g, '');

  if (!val_input) return;
  var hasDotAtTheEnd = val_input.endsWith('.');
  
  val_input = Number.parseFloat(val_input)
  if (isNaN(val_input)) return  
  
  document.getElementById('input').value = val_input.toLocaleString('ru').replace(',', '.') + (hasDotAtTheEnd ? '.' : '');
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы