Try this:

    Number.standardizenumber = function (number,n) {
    
      var mantissa = number.toLocaleString(
        'en-US', {
          useGrouping: false,
          signDisplay: "never",
          notation: "scientific",
          minimumFractionDigits: 16,
          maximumFractionDigits: 16
        }
      ).toLowerCase().split('e')[0].replace(/\./g,'');
      var exponentNegative = "0".repeat(Math.max(+Math.abs(number).toExponential().toLowerCase().split('e-')[1]-1,0)) + mantissa;
      var exponentPositive = Math.abs(number)<1E17?mantissa.slice(0,+Math.abs(number).toExponential().toLowerCase().split('e+')[1]+1):mantissa+(Math.abs(number).toExponential().toLowerCase().split('e+')[1]-16);
      var decimalExpPositive = Math.abs(number)<1E17?mantissa.slice(0,Math.abs(number).toExponential().toLowerCase().split('e+')[0]-16):undefined;
      var fullDec = number===0?(1/number<0?'-0':'0'):(1/Math.sign(number)<0?'-':'')+(Math.abs(number)>=1?[exponentPositive,decimalExpPositive].join('.'):`.${exponentNegative}`);
      return isNaN(number)===false&&Math.abs(number)<1E17?((number%1===0?number.toLocaleString('en-US', {useGrouping: false}):fullDec).includes('.')===false?fullDec.split('.')[0].replace(/\B(?=(\d{3})+(?!\d))/g, ","):fullDec.replace(/(\.[0-9]*[1-9])0+$|\.0*$/,'$1').replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ",")):number.toLocaleString('en-US');
      
    }

    Number.standardizenumber(.0000001) // .0000001
    Number.standardizenumber(1E21) // 1,000,000,000,000,000,000,000
    Number.standardizenumber(1_234_567_890.123456) // 1,234,567,890.123456