Question: I'm trying to make a number input. I've made so my textbox only accepts numbers via this code:

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

```

But now the question comes to, how would I create spaces as the user is typing in their number, much like the iPhone's telephone spacing thing, but with numbers so for example if they type in: 1000 it will become 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...

I've tried to read the input from the right for each 3 characters and add a space. But my way is inefficient and when I'm changing the value from 1000 to 1 000 in the textbox, it selects it for some reason, making any key press after that, erase the whole thing.

If you know how to do this, please refrain from using javascript plugins like jQuery. Thank You.

Answer: 
Easiest way:

1
=

```
var num = 1234567890,
result = num.toLocaleString() ;// result will equal to "1 234 567 890"

```

2
=

```
var num = 1234567.890,
result = num.toLocaleString() + num.toString().slice(num.toString().indexOf('.')) // will equal to 1 234 567.890

```

3
=

```
var num = 1234567.890123,
result = Number(num.toFixed(0)).toLocaleString() + '.' + Number(num.toString().slice(num.toString().indexOf('.')+1)).toLocaleString()
//will equal to 1 234 567.890 123

```

4
=

If you want ',' instead of ' ':

```
var num = 1234567.890123,
result = Number(num.toFixed(0)).toLocaleString().split(/\s/).join(',') + '.' + Number(num.toString().slice(num.toString().indexOf('.')+1)).toLocaleString()
//will equal to 1,234,567.890 123

```

If not working, set the parameter like: "toLocaleString('ru-RU')"
parameter "en-EN", will split number by the ',' instead of ' '
This function works well inside an input:

```
const formatAndVerifyNumericValue = (value, callback) => {
const reg = new RegExp('^[0-9]+$');
let newValue = value.replace(/\s/g, '');
  if (reg.test(newValue)) {
   newValue = newValue.toString().replace(/\B(?<!\.\d*)(?=(\d{3})+. 
     (?!\d))/g, ' ');
   return callback(newValue);
}}

```