Добавлять пробел между числами?

Я пытаюсь ввести число. Я сделал так, что мое текстовое поле принимает только цифры через этот код:

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;
}

Но теперь возникает вопрос, как бы мне создать пробелы, когда пользователь печатает их число, очень похоже на расстояние между телефонами в iPhone, но с цифрами, например, если они наберут: 1000, он станет 1 000;

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

И т.д...

Я попытался прочитать ввод справа для каждых 3 символов и добавить пробел. Но мой путь неэффективен, и когда я изменяю значение с 1000 на 1 000 в текстовом поле, он выбирает его по какой-то причине, делая любое нажатие клавиши после этого, стирая все это.

Если вы знаете, как это сделать, пожалуйста, воздержитесь от использования плагинов javascript, таких как jQuery. Благодарю вас.