Adicionando espaço entre números?

Estou tentando fazer uma entrada numérica. Eu fiz assim meu textbox só aceita números através deste código:

function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}

Mas agora a questão é como criar espaços à medida que o usuário digita seu número, muito parecido com o espaçamento de telefone do iPhone, mas com números, por exemplo, se eles digitarem: 1000 ele se tornará 1 000;

1
10
100
1 000
10 000
100 000
1 000 000
10 000 000
100 000 000
1 000 000 000

Etc ...

Eu tentei ler a entrada da direita para cada 3 caracteres e adicionar um espaço. Mas o meu caminho é ineficiente e quando eu estou mudando o valor de 1000 para 1 000 na caixa de texto, ele seleciona por algum motivo, fazendo qualquer tecla pressionada depois disso, apague a coisa toda.

Se você souber como fazer isso, por favor, evite usar plugins javascript como o jQuery. Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion