Ich möchte Kommas aus der Zeichenfolge entfernen und diesen Betrag mit JavaScript berechnen.
Zum Beispiel habe ich diese zwei Werte:
- 100.000,00
- 500.000,00
Jetzt möchte ich Kommas aus dieser Zeichenfolge entfernen und die Summe dieser Beträge.
Ich möchte Kommas aus der Zeichenfolge entfernen und diesen Betrag mit JavaScript berechnen.
Zum Beispiel habe ich diese zwei Werte:
Jetzt möchte ich Kommas aus dieser Zeichenfolge entfernen und die Summe dieser Beträge.
Antworten:
Um die Kommas zu entfernen, müssen Sie replacedie Zeichenfolge verwenden. Um in einen Float zu konvertieren, damit Sie rechnen können, benötigen Sie parseFloat:
var total = parseFloat('100,000.00'.replace(/,/g, '')) +
parseFloat('500,000.00'.replace(/,/g, ''));
Verwandte Antwort, aber wenn Sie einen Benutzer bereinigen möchten, der Werte in ein Formular eingibt, können Sie Folgendes tun:
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
Verwenden Sie das internationale Datum lokal über format. Dadurch werden fehlerhafte Eingaben bereinigt. Wenn eine vorhanden ist, wird eine Zeichenfolge zurückgegeben, nach der NaNSie suchen können. Es gibt derzeit keine Möglichkeit, Kommas als Teil des Gebietsschemas zu entfernen (Stand: 12.10.19) . Sie können also einen Regex-Befehl verwenden, um Kommas mit zu entfernen replace.
ParseFloat konvertiert die Definition dieses Typs von Zeichenfolge in Zahl
Wenn Sie React verwenden, könnte Ihre Berechnungsfunktion folgendermaßen aussehen:
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
}
replaceundparseFloat. Hier ist ein kurzer Testfall: jsfiddle.net/TtYpH