Remove commas from the string using JavaScript

后端 未结 3 879
名媛妹妹
名媛妹妹 2020-11-29 02:45

I want to remove commas from the string and calculate those amount using JavaScript.

For example, I have those two values:

  • 100,000.00
  • 500,0
相关标签:
3条回答
  • 2020-11-29 03:05

    This is the simplest way to do it.

    let total = parseInt(('100,000.00'.replace(',',''))) + parseInt(('500,000.00'.replace(',','')))
    
    0 讨论(0)
  • 2020-11-29 03:18

    Related answer, but if you want to run clean up a user inputting values into a form, here's what you can do:

    const numFormatter = new Intl.NumberFormat('en-US', {
      style: "decimal",
      maximumFractionDigits: 2
    })
    
    // Good Inputs
    parseFloat(numFormatter.format('1234').replace(/,/g,"")) // 1234
    parseFloat(numFormatter.format('123').replace(/,/g,"")) // 123
    
    // 3rd decimal place rounds to nearest
    parseFloat(numFormatter.format('1234.233').replace(/,/g,"")); // 1234.23
    parseFloat(numFormatter.format('1234.239').replace(/,/g,"")); // 1234.24
    
    // Bad Inputs
    parseFloat(numFormatter.format('1234.233a').replace(/,/g,"")); // NaN
    parseFloat(numFormatter.format('$1234.23').replace(/,/g,"")); // NaN
    
    // Edge Cases
    parseFloat(numFormatter.format(true).replace(/,/g,"")) // 1
    parseFloat(numFormatter.format(false).replace(/,/g,"")) // 0
    parseFloat(numFormatter.format(NaN).replace(/,/g,"")) // NaN
    

    Use the international date local via format. This cleans up any bad inputs, if there is one it returns a string of NaN you can check for. There's no way currently of removing commas as part of the locale (as of 10/12/19), so you can use a regex command to remove commas using replace.

    ParseFloat converts the this type definition from string to number

    If you use React, this is what your calculate function could look like:

    updateCalculationInput = (e) => {
        let value;
        value = numFormatter.format(e.target.value); // 123,456.78 - 3rd decimal rounds to nearest number as expected
        if(value === 'NaN') return; // locale returns string of NaN if fail
        value = value.replace(/,/g, ""); // remove commas
        value = parseFloat(value); // now parse to float should always be clean input
    
        // Do the actual math and setState calls here
    }
    
    0 讨论(0)
  • 2020-11-29 03:22

    To remove the commas, you'll need to use replace on the string. To convert to a float so you can do the maths, you'll need parseFloat:

    var total = parseFloat('100,000.00'.replace(/,/g, '')) +
                parseFloat('500,000.00'.replace(/,/g, ''));
    
    0 讨论(0)
提交回复
热议问题