Script Preparation code:
x
 
var char = ' '
var count = 3
function formatNumber(num) {
    const arr = num.toString().split('');
    let it = 1;
    for (let i = arr.length - 1; i >= 1; i--) {
        if (it % count === 0) {
            arr.splice(i, 0, char);
        }
        it++;
    }
    return arr.join('');
}
function formatNumber1bis(num) {
    const arr = `${num}`.split('');
    let it = 1;
    for (let i = arr.length - 1; i >= 1; i--) {
        if (it % count === 0) {
            arr.splice(i, 0, char);
        }
        it++;
    }
    return arr.join('');
}
function formatNumber2(num) {
    return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, char);
}
function formatNumber2bis(num) {
    return `${num}`.replace(/\B(?=(\d{3})+(?!\d))/g, char);
}
Tests:
  • regex test (toString)

     
    const numbers = [1, 100, 1000, 10000, 100000, 1000000, 10000000, 1000000000]
    for (let i = 0; i < numbers.length; i++) {
        formatNumber2(numbers[i])
    }
  • code test (toString)

     
    const numbers = [1, 100, 1000, 10000, 100000, 1000000, 10000000, 1000000000]
    for (let i = 0; i < numbers.length; i++) {
        formatNumber(numbers[i])
    }
  • regex test ````

     
    const numbers = [1, 100, 1000, 10000, 100000, 1000000, 10000000, 1000000000]
    for (let i = 0; i < numbers.length; i++) {
        formatNumber2bis(numbers[i])
    }
  • code test ````

     
    const numbers = [1, 100, 1000, 10000, 100000, 1000000, 10000000, 1000000000]
    for (let i = 0; i < numbers.length; i++) {
        formatNumber1bis(numbers[i])
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    regex test (toString)
    code test (toString)
    regex test ````
    code test ````

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36
Chrome 119 on Windows
View result in a separate tab
Test name Executions per second
regex test (toString) 828992.1 Ops/sec
code test (toString) 361758.6 Ops/sec
regex test ```` 843923.6 Ops/sec
code test ```` 366206.4 Ops/sec