不确定是否有办法做到这一点,但是发生的事情是我在输入中添加了2个值,然后将它们显示在标签IntPtr(int value)
中。但是,有时候,如果您在两个数字中都使用破折号,则会抛弃最终的数字(即使使用正则表达式也可以去除破折号,逗号等)。有没有一种方法可以先检查数字,然后再添加?谢谢
$totalRetailAmountField
答案 0 :(得分:1)
在模式(,|[^\d.-]+)+
中,您使用替代来匹配逗号或否定的字符类,这些字符类与由于{{1}之类的开头使用^
而未列出的任何字符相匹配}}
这意味着您没有删除数字,点,但也没有删除破折号。
根据要替换为空字符串的内容,可以使用单个字符类并列出要替换的内容,例如匹配逗号,破折号或空格字符[^\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与不是数字的任何内容都匹配。字符或破折号。