![](/img/trans.png)
[英]How to remove remaining commas from a string using JavaScript Regex?
[英]Remove commas from the string using JavaScript
我想从字符串中删除逗号并使用 JavaScript 计算这些数量。
例如,我有这两个值:
现在我想从这些字符串中删除逗号并想要这些数量的总和。
要删除逗号,您需要在字符串上使用replace
。 要转换为浮点数以便您可以进行数学运算,您需要parseFloat
:
var total = parseFloat('100,000.00'.replace(/,/g, '')) +
parseFloat('500,000.00'.replace(/,/g, ''));
相关答案,但如果您想运行清理用户在表单中输入的值,您可以执行以下操作:
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
通过format
使用本地国际日期。 这会清除任何错误的输入,如果有,它会返回一串NaN
您可以检查。 目前无法将逗号作为区域设置的一部分(截至 2019 年 10 月 12 日)删除,因此您可以使用正则表达式命令使用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
}
这是最简单的方法。
let total = parseInt(('100,000.00'.replace(',',''))) + parseInt(('500,000.00'.replace(',','')))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.