使用JavaScript从字符串中删除逗号

Kan*_*ela 76 javascript

我想从字符串中删除逗号并使用JavaScript计算这些数量.

例如,我有这两个值:

  • 100,000.00
  • 500,000.00

现在我想从这些字符串中删除逗号,并希望获得这些数量的总和.

lon*_*day 140

要删除逗号,您需要replace在字符串上使用.要转换为浮点数以便进行数学运算,您需要parseFloat:

var total = parseFloat('100,000.00'.replace(/,/g, '')) +
            parseFloat('500,000.00'.replace(/,/g, ''));
Run Code Online (Sandbox Code Playgroud)

  • 是的,需要结合`replace`和`parseFloat`.这是快速测试用例:http://jsfiddle.net/TtYpH/ (3认同)

Vin*_*ang 5

相关答案,但如果您想运行清理用户在表单中输入的值,您可以执行以下操作:

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
Run Code Online (Sandbox Code Playgroud)

通过 使用本地国际日期format。这会清除任何错误的输入,如果有,它会返回一串NaN您可以检查的输入。目前无法将逗号作为区域设置的一部分(截至 10 年 12 月 19 日)删除,因此您可以使用正则表达式命令删除逗号replace

ParseFloat 将 this 类型定义从字符串转换为数字

如果你使用 React,这就是你的计算函数的样子:

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
}
Run Code Online (Sandbox Code Playgroud)


小智 5

要删除逗号,您需要使用字符串替换方法。

var numberArray = ["1000,00", "23", "11"];

//If String
var arrayValue = parseFloat(numberArray.toString().replace(/,/g, ""));

console.log(arrayValue, "Array into toString")

// If Array

var number = "23,949,333";
var stringValue = parseFloat(number.replace(/,/g, ""));

console.log(stringValue, "using String");
Run Code Online (Sandbox Code Playgroud)