我正在研究一个将文本中所有数字相加的函数:



'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'));

07-24 09:50
查看更多