Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将两个包含美元符号的值求和$&引用;?我一直在试图找出方法和属性,但仍然没有线索_Javascript_Html_Parsing_Input - Fatal编程技术网

Javascript 如何将两个包含美元符号的值求和$&引用;?我一直在试图找出方法和属性,但仍然没有线索

Javascript 如何将两个包含美元符号的值求和$&引用;?我一直在试图找出方法和属性,但仍然没有线索,javascript,html,parsing,input,Javascript,Html,Parsing,Input,等于“45美元70美元”。但我只想总结一下价值。如何将这两个值相加以得到忽略美元符号的最终值?您可以使用 //for example allInputs[22].value //equals $45 and allInputs[4].value // equals $70 allInputs[22].value + allInputs[4].value = "$45$70" substring方法将去掉$符号,parseInt将其转换为数字。您需要它,因为如果不使用它,它将把值作为字符串

等于“45美元70美元”。但我只想总结一下价值。如何将这两个值相加以得到忽略美元符号的最终值?

您可以使用

//for example 
allInputs[22].value //equals $45 and
allInputs[4].value  // equals $70

allInputs[22].value + allInputs[4].value = "$45$70"
substring
方法将去掉$符号,
parseInt
将其转换为数字。您需要它,因为如果不使用它,它将把值作为字符串连接起来。请注意,我用另一组括号对这些数字求和。这是因为,当解释器看到“$”时,它认为应该连接字符串。但我们希望对数字求和,然后将和与字符串连接。

您可以在值的开头使用并检查非数字符号:

var allInputs=[“$45”、“$70”];
var sum=所有输入减少(函数(前、当前){
if(isNaN(curr[0])返回pre+(+curr.slice(1));
返回前+当前;
},0);
console.log(“$”+总和)您可以使用

"$" + (parseInt(allInputs[22].value.substring(1)) + parseInt(allInputs[22].value.substring(1)))
请记住,字符串是数组。
如果希望以“$”符号结束,则只需将其连接起来。

这是一个通用函数表达式,它接受表单输入的字符串值并返回一个数字

parseFloat(allInputs[22].value.slice(1)) + parseFloat(allInputs[4].value.slice(1))
您可以这样使用它:

const getNumber = (val) => Number(val.match(/[\d\.]+/));

注意:理想情况下,您应该将货币值($、英镑、欧元等)与值分开存储,这样就不会成为问题。

您需要删除“$”并将
字符串
转换为
数字
,以对其进行汇总

代码 您可以使用like
allInputs[22].value删除“$”。替换(“$”,“)
这将以字符串形式返回
“42”

现在我们需要将这个字符串转换成一个数字。有很多方法可以做到这一点。我在下面的解决方案中使用

解决方案
var someMoney='$50'
var moreMoney=“$60”
var toMuchMoney=“$”+数字(someMoney.replace(“$”,”)+数字(moreMoney.replace(“$”,”)

log(toMuchMoney)
要解决这个问题,您应该知道javascript中的
串联
添加
之间的区别

若您添加两个字符串,您将得到两个字符串的串联作为答案

“$45”+“$70”=“$45$70”

如果你加两个整数,就得到加法

45+70=115

所以,要解决问题,首先需要从变量中提取数字,然后对它们进行加法。 要提取数字,您可以使用任何方法,但我使用的是
split
。 要将字符串转换为整数,可以使用
parseInt

让num1=“$45”;
让num2=“$70”;
函数getValue(num){
返回parseInt(num.split(“$”)[1]);
}
设sum=getValue(num1)+getValue(num2);

console.log(“$”+总和)我想您需要
parseFloat()
。因此,下面将是我的助手函数

函数add美元(s1,s2){
变量n1=parseFloat(s1.replace(/[^0-9\.]/g,”),
n2=parseFloat(s2.替换(/[^0-9\.]/g,”);
返回“$”+(n1+n2).toFixed(2);
}

log(add美元($123.42,“$12.88”)将$替换为空字符串,然后将字符串解析为INT。这仅在输入连续时有效。在本例中,输入是第22个和第4个。如果要使用
parseInt
,请确保包含基数值:
parseInt(str,10)
。这同样有效。但我对康斯特是个新手。英雄联盟
const sum = getNumber(allInputs[22].value) + getNumber(allInputs[4].value);