0
Неділя
січ 28

Розбити число на розряди під час введення в input text

UserPost
UserPost

При введенні довгих чисел у текстове поле стає візуально зрозумілішим і зручнішим, якщо числа автоматично б'ються на розряди. Зробити таку функцію можна на JS за допомогою регулярних виразів та jQuery.


Введення лише чисел (без крапки)

<input id="sum" type="text" placeholder="Введіть число">
 
<script>
function digits_int(target){
	val = $(target).val().replace(/[^0-9]/g, '');
	val = val.replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
	$(target).val(val);
}
 
$(function($){
	$('body').on('input', '#sum', function(e){
		digits_int(this);
	});
	digits_int('#sum');
});
</script>


Введення суми з копійками

Другий приклад обмежує введення в поле числом із двома знаками після точки (наприклад:
1000.00).

<input id="sum" type="text" placeholder="Введіть суму">
 
<script>
function digits_float(target){
	val = $(target).val().replace(/[^0-9.]/g, '');
	if (val.indexOf(".") != '-1') {
		val = val.substring(0, val.indexOf(".") + 3);
	} 
	val = val.replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
	$(target).val(val);
}
 
$(function($){
	$('body').on('input', '#sum', function(e){
		digits_float(this);
	});
	digits_float('#sum');
});
</script>


Поширити