мои 5 копеек
<html>
<head>
<meta charset="windows-1251">
</head>
<body>
<input id="input" />
<script>
input=document.querySelector("#input")
input.oninput=function(){
var s=this.value
s=s.replace(/(^\d|\d{3}\.\d{2}|\d{3}(?!($|\.)))/g, "$1 ")
s=s.replace(/\s+/g, " ")
this.value=s
}
</script>
</body>
</html>
Тут надо еще прибить валидацию. Например, такие числа как 11.11 следует считать недопустимыми, иначе работать не будет