从 javascript 中的字符串中删除逗号和非数字字符



应该很简单,但正则表达式似乎永远不会:)。任何人都可以帮助如何从字符串中删除逗号和任何非数字字符吗?谢谢。它在var result块中。显然,当您将操作员放入数字时,它会爆炸。num1num2.我还需要去除任何破折号。

 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));
    }   
}
const clearText = plainText.replace(/D/g,'')

\D 将匹配所有非数字,但如果您需要保留点和破折号:

replace(/[^d.-]/g, '')

您应该使用此正则表达式/(,|[^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));
    }   
}

带有正则表达式。 num1.replace(/[^0-9.]/, '')

最新更新