Доброе утро, уважаемые форумчане
При создании игры Угадай число возникла необходимость отображения числа с разделителями тысяч (потому что, когда пишешь число "20940393", то не очень удобно отображается, что чего написал. А когда видно, что "20 940 393", то становится намного проще).
Итак, проблема вот в чем. В дополнении к обработке тысяч еще стоит обработка строки (ввод только чисел). Вот сама функция:
$(document).ready(function(){
$('#gad').bind("change keyup input click", function() {
if (this.value.match(/[^0-9]/g)) {
this.value = this.value.replace(/[^0-9]/g, '');
}
});
});
Функция разделения (нашел ее после того, как перерыл гугл) имеет вид регэкспа:
str.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, ' ');
Я поместил обработку инпута в функцию и сделал setInterval:
function numformat(){
$("#gad").val() = $("#gad").val().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, ',');
}
$(document).ready(function(){
numformat();
setInterval('numformat()',10);
});
Но тут возникает проблема, что ввод только чисел прекращается (можно вводить и буквы). Вопрос: как сделать по человечески?
P.S. Маленький подводный камень - ввод только чисел запрещает ввод других символов. Из-за незнания регэкспа не смог исправить функцию ввода только чисел. Это нужно учесть тоже.
P.P.S. Заранее, спасибо за помощь