JavaScript:从多个和的字符串中检索负浮点数
我有一个简单的应用程序,允许我计算一条路线上的发票和存款总额。但是,我希望允许用户在单个输入字段中输入多个值;例如:JavaScript:从多个和的字符串中检索负浮点数,javascript,regex,floating-point,Javascript,Regex,Floating Point,我有一个简单的应用程序,允许我计算一条路线上的发票和存款总额。但是,我希望允许用户在单个输入字段中输入多个值;例如: 500+50+36.5-45.2-10 我编写了一个函数,它将检索此输入,然后将此字符串拆分为+符号处的数组元素,并立即将值解析为数字,然后将它们相加,并将用户输入的总数返回到每个字段中。只要用户不使用除+以外的任何符号,这一切都很好 我已经搜索了regexp的用法: 但这些结果似乎都不起作用。 如何使代码检索这些值,以便将负值作为负值传递到数组中 以下是我的Js代码片段
500+50+36.5-45.2-10
我编写了一个函数,它将检索此输入,然后将此字符串拆分为+
符号处的数组元素,并立即将值解析为数字,然后将它们相加,并将用户输入的总数返回到每个字段中。只要用户不使用除+
以外的任何符号,这一切都很好
我已经搜索了regexp
的用法:
但这些结果似乎都不起作用。
如何使代码检索这些值,以便将负值作为负值传递到数组中
以下是我的Js代码片段:
有关完整代码,请访问我的
有点脏,但可能A.replace(/-/g,“+”)。split(“+”)
,这样,你在每个减号之前加一个加号,因为负数基本上没有运算符。有点脏,但可能A.replace(/-/g,“+”)。split(“+”
,这样,你在每个减号之前加一个加号,因为负数基本上没有运算符。我非常喜欢PhistucK的解决方案,但这里有一个与regex的替代方案:
value1Arr = a.split(/(?=\+|\-)/);
这将拆分它,但保留分隔符,因此结果将为:
["500", "+50", "+36.5", "-45.2", "-10"]
我非常喜欢PhistucK的解决方案,但这里有一个与regex的替代方案:
value1Arr = a.split(/(?=\+|\-)/);
这将拆分它,但保留分隔符,因此结果将为:
["500", "+50", "+36.5", "-45.2", "-10"]
您可以使用在+号或-号之前拆分的模式:
var str = '500+50+36.5-45.2-10';
console.log(str.split(/\+|(?=-)/));
您可以使用在+号或-号之前拆分的模式:
var str = '500+50+36.5-45.2-10';
console.log(str.split(/\+|(?=-)/));
可能value1Arr=a.split(/\+|(?=-)/)代码>那么这些加号就被删除了?这是我最初想要建议的,但我不知道?=
,我尝试了?:
。谢谢你教我这个把戏!不,它去掉了加号,而你的保留了加号。是的,如果这就是你的意思的话,当解析时,它最终将是相同的。是的,这就是我在解析后的意思:)也许value1Arr=a.split(/\+)(?=-)/代码>那么这些加号就被删除了?这是我最初想要建议的,但我不知道?=
,我尝试了?:
。谢谢你教我这个把戏!不,它去掉了加号,而你的保留了加号。是的,如果这就是你的意思的话,解析后它最终会是一样的。是的,解析后我的意思是:)只有当用户只输入一个负数时才起作用。如果您将replace
的第一个参数作为a.replace(/(\-)/g,“+-”).split(“+”)
,并将g
属性设置为regexp
,则无论多么混乱,它都可以工作。谢谢;)是的,几秒钟后我就修好了。:)无需在此处转义-
或使用括号。正如您在下面看到的,我已经添加了一个答案。这两种解决方案最终都会起作用,但是/\+\124;(?=-)/
在代码方面要干净得多。谢谢;)仅当用户仅输入一个负数时有效。如果您将replace
的第一个参数作为a.replace(/(\-)/g,“+-”).split(“+”)
,并将g
属性设置为regexp
,则无论多么混乱,它都可以工作。谢谢;)是的,几秒钟后我就修好了。:)无需在此处转义-
或使用括号。正如您在下面看到的,我已经添加了一个答案。这两种解决方案最终都会起作用,但是/\+\124;(?=-)/
在代码方面要干净得多。谢谢;)