@IvanGrishov
Начинающий Frontend разработчик

Как форматировать число при вводе в input через toLocaleString?


Здравствуйте. Мне нужно отформатировать число по тысячам при вводе в input, и ограничить число вводимых цифр до 10.
Я это реализую через метод toLocaleString.

Но у меня возникает проблема, в инпут на определенном этапе ( когда цифр больше 4 ) value меняется на "не число".

Подскажите пожалуйста, почему это происходит и как можно это поправить.
Спасибо за ответ.

https://codepen.io/IvanGrishov/pen/qBxbMpm?editors=1111
  • Вопрос задан
  • 316 просмотров
Решения вопроса 1
Ragtime_Kitty
@Ragtime_Kitty
Это происходит из-за того, что в Number() передается значение инпута, в котором есть запятая/пробел/другие символы (в зависимости от локали), которые данная регулярка не чистит.

input.addEventListener('input', function() {
  this.value = Number(this.value.replace(/\D/g,'')).toLocaleString('ru');
})
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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