【发布时间】:2014-06-21 03:18:09
【问题描述】:
我有一个简单的应用程序,可让我计算开票和存入路线的总金额。但是我想允许用户在一个输入字段中输入多个值;例如:
500+50+36.5-45.2-10。
我编写了一个函数,该函数将检索此输入,然后将 split 这个字符串放入 + 符号处的数组元素中,并立即将值解析为数字,然后将它们相加并返回用户输入的总数每个单独的字段。只要用户不使用除+ 之外的任何符号,这一切都很好。
我搜索了regexp的用法:
- regular expression in javascript for negative floating point number result stored in array
- Javascript Regular expression to allow negative double value?
但似乎没有任何结果有效。 如何让我的代码检索值,以便将负值作为负值传递到数组中?
这是我的 Js 代码的 sn-p: 完整代码请访问我的fiddle。
totalInvoiced: function () {
var a = A.invoiced.value;
var value1Arr = [];
value1Arr = a.split("+").map(parseFloat);
var value1 = 0;
value1Arr.forEach(function (value) {
value1 += value;
});
【问题讨论】:
-
仅当用户只输入一个负数时才有效。如果您将
replace的第一个参数填写为a.replace(/(\-)/g, "+-").split("+")并将g属性设置为regexp,则它可以工作,但是很麻烦。谢谢;) -
是的,几秒钟后我修好了。 :) 无需在那里转义
-或使用括号。我已经添加了一个答案,如下所示。 -
两种解决方案最终都有效,但
/\+|(?=-)/在代码方面更简洁。谢谢;)
标签: javascript regex floating-point