JSFiddle - React, Tailwind, and code Playground

by iamurgent

HTML

<span>1234567</span>
<span>123,4,5,6,7</span>
<span>12345.67</span>
<span>123456789.123456789</span>
<span>12,3456,7,8,9.12,3,45,6</span>
<span>0000012,3456,7,8,9.12,3,45,6</span>
<span>00,0,0012,3456,7,8,9.12,3,45,6</span>

CSS

span {display: block;
    margin-bottom: 10px}

JavaScript

function commaSeparateNumber(val){
    val = val.toString().replace(/,/g, ''); //remove existing commas first
    var valRZ = val.replace(/^0+/, ''); //remove leading zeros, optional
    var valSplit = valRZ.split('.'); //then separate decimals
		
    while (/(\d+)(\d{3})/.test(valSplit[0].toString())){
        valSplit[0] = valSplit[0].toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2');
    }
    
    if(valSplit.length == 2){ //if there were decimals
        val = valSplit[0] + "." + valSplit[1]; //add decimals back
    }else{
        val = valSplit[0]; }
	
    return val;
}

$('span').each(function(){
    $(this).html(commaSeparateNumber($(this).html()));
});