从javascript中的字符串中剥离逗号和非数字字符

时间:2019-04-10 20:28:50

标签: javascript jquery

应该很简单,但是RegExs似乎从来不是:)。谁能帮助您删除字符串中的逗号和任何非数字字符?谢谢。在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));
    }   
}

3 个答案:

答案 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));
    }   
}