繁体   English   中英

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

[英]Stripping commas and non-numeric characters from string in javascript

应该很简单,但是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));
    }   
}
const clearText = plainText.replace(/\D/g,'')

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM