Показать сообщение отдельно
  #1 (permalink)  
Старый 08.11.2013, 09:19
Аспирант
Отправить личное сообщение для VolodinAS Посмотреть профиль Найти все сообщения от VolodinAS
 
Регистрация: 24.11.2012
Сообщений: 44

Разделение разрядов числа с помощью AJAX
Доброе утро, уважаемые форумчане
При создании игры Угадай число возникла необходимость отображения числа с разделителями тысяч (потому что, когда пишешь число "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. Заранее, спасибо за помощь
Ответить с цитированием