检查输入中的数字是否有效,然后将其相加

时间:2019-04-11 19:31:20

标签: javascript jquery

不确定是否有办法做到这一点,但是发生的事情是我在输入中添加了2个值,然后将它们显示在标签IntPtr(int value)中。但是,有时候,如果您在两个数字中都使用破折号,则会抛弃最终的数字(即使使用正则表达式也可以去除破折号,逗号等)。有没有一种方法可以先检查数字,然后再添加?谢谢

$totalRetailAmountField

2 个答案:

答案 0 :(得分:1)

在模式(,|[^\d.-]+)+中,您使用替代来匹配逗号或否定的字符类,这些字符类与由于{{1}之类的开头使用^而未列出的任何字符相匹配}}

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

regex101 demo

根据要替换为空字符串的内容,可以使用单个字符类并列出要替换的内容,例如匹配逗号,破折号或空格字符[^\d.-],或使用{{1 }}以匹配所有非数字。

例如[,\s-]\D+

答案 1 :(得分:1)

不确定我是否理解正确,但我想如果您的意图是消除字符串中所有可能的破折号,可以将以下regExp用作replace方法的第一个参数。

/-/g

因此您的代码将来自

var result = parseFloat(num1.replace(/(,|[^\d.-]+)+/g, '')) + parseFloat(num2.replace(/(,|[^\d.-]+)+/g, ''));

var result = parseFloat(num1.replace(/-/g, '')) + parseFloat(num2.replace(/-/g, ''));

实际上,您使用的regExp与不是数字的任何内容都匹配。字符或破折号。