Как я могу динамически добавлять запятые, поскольку пользователь вводит числа? Есть ли хороший форматформат, который поможет? Я должен добавить эти числа позже, поэтому мне в конечном итоге придется удалить запятые по линии. Но экран должен показывать запятые для лучшей читаемости.
Может ли jQuery добавлять запятые, когда пользователь вводит цифры?
Ответ 1
Запустите фрагмент кода, чтобы увидеть его работу
$('input.number').keyup(function(event) {
// skip for arrow keys
if(event.which >= 37 && event.which <= 40) return;
// format number
$(this).val(function(index, value) {
return value
.replace(/\D/g, "")
.replace(/\B(?=(\d{3})+(?!\d))/g, ",")
;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input class="number">
Ответ 2
Здесь реализация ответа @maček в vanilla JS, если вы не хотите использовать jQuery:
var el = document.querySelector('input.number');
el.addEventListener('keyup', function (event) {
if (event.which >= 37 && event.which <= 40) return;
this.value = this.value.replace(/\D/g, '')
.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
});
<input class="number">