javascript - 检查输入的数字是否有效然后添加它们

标签 javascript jquery

不确定是否有办法做到这一点,但实际情况是我从输入中添加了 2 个值,然后将它们显示在标签 $totalRetailAmountField 中。但是,有时如果您在其中一个数字中加入破折号,它会丢弃最终数字(即使使用正则表达式去除破折号、逗号等)。有没有办法先检查数字,然后添加它们?谢谢

function calcTotalRetailVal() {
    var num1 = $oneTimeCostField.val();
    var num2 = $recurringTotalCostField.val();
    var result = parseFloat(num1.replace(/(,|[^\d.-]+)+/g, '')) + parseFloat(num2.replace(/(,|[^\d.-]+)+/g, ''));

    if (!isNaN(result)) {
        $totalRetailAmountField.text('$' + result.toFixed(2));
    }
}
calcTotalRetailVal();
$oneTimeCostField.on("keydown keyup", function() {
    calcTotalRetailVal();
});
$recurringTotalCostField.on("keydown keyup", function() {
    calcTotalRetailVal();
});

最佳答案

在您的模式 (,|[^\d.-]+)+ 中,您使用交替来匹配逗号或匹配任何未列出的字符的否定字符类在开头使用 ^ 就像 [^\d.-]

这意味着您没有删除数字、点,但也没有删除破折号。

regex101 demo

根据您想用空字符串替换的内容,您可以使用单个字符类并列出您想要替换的内容,例如匹配逗号、破折号或空格字符 [,\s-],或者使用\D+来匹配所有非数字。

例如 num1.replace(/[,\s-]+/g, '')num1.replace(/\D+/g, '')

关于javascript - 检查输入的数字是否有效然后添加它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55639905/

相关文章:

javascript - 如果用户在输入框中键入内容,如何触发单击按钮

javascript - 获取选择下拉列表的值

javascript - 如何在 jquery 按钮上居中图标 + 文本

php - jQuery - <span> 返回 'undefined' 的 html

javascript - Jquery - 在参数中选择一个数字字符串

javascript - 将 jQuery.resizing API 应用于 HTML 表失败

javascript - 如何使用ajax(jquery)将复选框传递给mysql?

javascript - 检查所有表 td 是否都有类,然后执行某些操作

javascript - 使用 Puppeteer 抓取 SPAN 数组中的文本以获取 div ID

jquery - jQuery 的最小宽度和最大宽度