应该很简单,但是RegExs似乎从来不是:)。谁能帮助您删除字符串中的逗号和任何非数字字符?谢谢。在var result
块中。显然,当您将一个运算符输入数字时,它会爆炸。num1
和num2
。我还需要去除所有破折号。
function calcTotalRetailVal() {
var num1 = $oneTimeCostField.val();
var num2 = $recurringTotalCostField.val();
//In the replace method
var result = parseFloat(num1.replace(/,/g, '')) + parseFloat(num2.replace(/,/g, ''));
if (!isNaN(result)) {
$totalRetailAmountField.text('$' + result.toFixed(2));
}
}
答案 0 :(得分:2)
const clearText = plainText.replace(/\D/g,'')
\ D将匹配所有非数字,但是如果您需要保留点和破折号:
replace(/[^\d.-]/g, '')
答案 1 :(得分:1)
使用正则表达式。
num1.replace(/[^0-9.]/, '')
答案 2 :(得分:1)
您应该使用此正则表达式/(,|[^\d.-]+)+/g
来检测逗号和任何非数字值,例如字符,运算符,组中的空格,并且比单独检测要快。负数(例如-1)和。将包括在内。
我重写了您的代码。
function calcTotalRetailVal() {
var num1 = $oneTimeCostField.val();
var num2 = $recurringTotalCostField.val();
//In the replace method
var result = parseFloat(num1.replace(/(,|[^\d.-]+)+/g, '')) + parseFloat(num2.replace(/(,|[^\d.-]+)+/g, ''));
if (!isNaN(result)) {
$totalRetailAmountField.text('$' + result.toFixed(2));
}
}