Ничего умнее в голову мне не пришло...
<input id="inp">
<script>
(function(){
var prev_value="";
var input= document.getElementById("inp");
input.onkeyup = input.onchange= input.onpaste= function(){
this.value= this.value.replace(/[^\d\s]/g, "");
if (prev_value==this.value)// отслеживаем изменение значения
return;
prev_value= this.value;
this.value= this.value.replace(/[^\d]/g, "").split("").reverse().join("").replace(/\d{3}(?!$|(?:\s$))/g, "$& ").split("").reverse().join(""); // Уууу, цепочки!..
};
})();
</script>
Всё. Окончательный мой вариант))