对正则表达式产生的所有类型的数字求和
Sum all kind of number resulting from regular expression
我正在研究一个函数,它将文本中的所有数字相加:
'use strict';
var sum = function(text, regex) {
var match;
return !!(match = text.match(regex || /'d+/g)) ?
match.reduce(function(prev, curr) {
return +prev + +curr;
})
: 0;
}
console.log(sum('1 12 40'));
console.log(sum('10 12 40'));
console.log(sum('1 12 510'));
console.log(sum('LLLLLLLL'));
console.log(sum('10 1'));
并且不工作 它与点的数字:
'use strict';
var sum = function(text, regex) {
var match;
return !!(match = text.match(regex || /'d+/g)) ?
match.reduce(function(prev, curr) {
return +prev + +curr;
})
: 0;
}
console.log(sum('1.10 12.40 40.30'));
所以,我想寻求帮助。我怎么也可以用指针对数字求和?
谢谢。
使用将
数字与小数点匹配的正则表达式
var sum = function(text, regex) {
return (text.match(regex || /'d*(?:'.'d*)?/g) || [])
.reduce(function(prev, curr) {
return prev + +curr;
}, 0);
}
document.write(sum('1.10 12.40 40.30'));
如果sum
期望数字作为字符串作为参数,可以将String.prototype.split()
与RegExp
/'s/
一起使用,Array.prototype.map()
与Number
一起使用作为回调
"use strict";
var sum = function(text, regex) {
var match;
return !!(match = text.split(regex || /'s/).map(Number)) ?
match.reduce(function(prev, curr) {
return prev + curr;
})
: 0;
}
console.log(sum("1.10 12.40 40.30"));
给定输入字符串的格式,您可以首先使用 String split() 拆分值,然后循环对值求和:
function sum(text) {
var arr = text.split(" ");
var total = 0;
for (var i in arr) {
if (/['d.]+/g.test(arr[i])) {
total += parseFloat(/['d.]+/g.exec(arr[i]));
}
}
document.write("The sum is " + total);
}
sum("1.10 12.40 40.30");
相关文章:
- 输入类型数字,只接受数字,不接受字母jQuery
- 输入类型 = “数字” 的 jQuery
- 在输入类型数字更改时添加复选框
- HTML5 输入类型 = 数字更改步骤行为
- 如果输入类型=数字,则maxlength=5不起作用
- 输入类型数字隐藏输入右侧的箭头
- 表达式类型(数字)
- 类型数字等于数字
- 角度数据绑定 - 输入类型=“数字”
- Opera 12 的输入类型=数字有效性行为的任何解决方法
- 尝试在输入类型数字形式输出中计算总计
- 如何在旧浏览器中验证输入[类型=“数字”]
- 任何双精度类型数字的正则表达式
- 对于输入类型=“数字”如何将默认值设置为 0
- HTML5 输入类型=数字值在 Webkit 中为空,如果包含空格或非数字字符
- Don't允许在<输入类型=数字/>
- 禁用输入类型=数字的输入验证
- 限制用户在html输入中输入范围内的值(类型=数字)
- 使用输入类型数字获取光标位置
- 验证输入类型="数字"