Javascript添加以逗号分隔的数字
Javascript to add the numbers delimited by comma
我试图获得文本框内所有整数的总和。数字之间用逗号分隔。我需要把这些数相加,得到它们的和。可惜我不能得到它们。
我的代码是: <script type="text/javascript">
function computeData()
{
var data = document.getElementById("data").value;
var temp = data.split(",");
for( i=0; i<temp.length; i++)
var k=0;
{
var j = temp[i];
k = k + j;
alert(k);
}
document.getElementById("sum").value= k;
}
</script>
您需要使用parseInt
:
> 2 + '3'
'23'
> 2 + parseInt('3', 10)
5
10
告诉parseInt
假设这个数是以10为底。如果您有浮点数,请使用parseFloat()
(不需要指定基数):
> 2 + parseFloat('3.13')
5.13
如果你知道它们是整数:
var data = document.getElementById("data").value;
var sum = data.split(",").reduce(function(prev, curr){
return parseInt(prev,10) + parseInt(curr,10);
});
如果你对整数不确定,你可以使用parseFloat
来代替parseInt。
请注意,这可能在较旧的浏览器中不起作用。如果你需要支持IE9之前的IE,你可能只需要在你的循环中使用parseInt/parseFloat。(将k声明移出循环)
var k=0;
for( i=0; i<temp.length; i++)
{
var j = temp[i];
k = k + parseInt(j,10);
alert(k);
}
这可以在整数或浮点的CSV字符串上工作。
var data = document.getElementById("data").value;
var a = data.match(/'d+(?:[.]'d+)?/g);
var num = 0;
a.forEach(function(n){
num += parseFloat(n);
});
console.log(num);
我还建议使用以下语法
var temp = data.split(",");
for(var i=0, k=0; i<temp.length; i++;)
{
k += parseInt(temp[i]);
}
我喜欢eval的想法,但是您也可以使用正则表达式来匹配和合计整数和小数,以及任何正负号。非数字将被忽略,因此您可以使用逗号或空格分隔,或者在数字之间使用'+'或'-'。
function computeData(){
var data= document.getElementById("data").value;
var rx=/([+-]?('.'d+|'d+('.'d+)?))/g, n= 0, M;
while((M= rx.exec(data))!= null){
n+= (+M[1])
}
document.getElementById("sum").value= n;
}
考虑:
var data = '1,2,3';
eval(data.split(',').join('+'))); // 6
或
eval(data.replace(/,/g,'+')); // 6
编辑
对于那些讨厌eval的人(你知道你是谁!!):
var sum = data.split(',').reduce(function(p, c){return p + +c},0);
注意支持ES5 reduce是必需的,在MDN上有一个polyfill。
相关文章:
- Javascript-Regex,用于逗号分隔的字母数字
- 输入只允许6位数字,逗号分隔后,允许角js中的另外6位数字
- 需要Selenium IDE中逗号分隔值中的数字
- 在另一个由非字母数字字符分隔的字符串中搜索(任何)字符串
- 向Javascript输出中添加逗号分隔的数字
- javascript正则表达式,用于逗号分隔的数字重复
- 将字符串分隔成数字值
- Regex,用于匹配用逗号分隔的特定数字
- 如何使用css将数字格式化为逗号分隔
- 如何仅替换第一个数字(用连字符分隔)
- 如何在 JavaScript 中用逗号分隔的
- 正则表达式在开始时将字符串与(逗号分隔的)数字匹配,并拆分为数字和其余
- 对具有点分隔数字的属性的对象数组进行排序
- 向数字添加百分之一位,该数字可以逗号或句点分隔
- Javascript - 正则表达式,用于字母,数字,下划线逗号分隔的标签
- 在 JavaScript 中,括号中的数字/函数以逗号分隔
- 正则表达式 javascript 用于检查逗号分隔的数字
- 使用正/负整数和浮点数验证逗号分隔的数字
- 用于JavaScript验证逗号分隔数字的RegEx
- 用逗号分隔数字来分隔 flot 中的轴