Javascript 如何将两个包含美元符号的值求和$&引用;?我一直在试图找出方法和属性,但仍然没有线索
等于“45美元70美元”。但我只想总结一下价值。如何将这两个值相加以得到忽略美元符号的最终值?您可以使用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将其转换为数字。您需要它,因为如果不使用它,它将把值作为字符串
//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\.]+/));
注意:理想情况下,您应该将货币值($、英镑、欧元等)与值分开存储,这样就不会成为问题。您需要删除“$”并将字符串
转换为数字
,以对其进行汇总
代码
您可以使用likeallInputs[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);