Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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_Arrays_Regex_Function - Fatal编程技术网

Javascript 如何从单个数组项中提取多个整数

Javascript 如何从单个数组项中提取多个整数,javascript,arrays,regex,function,Javascript,Arrays,Regex,Function,这里有人能告诉我修改下面regexp的方法吗,这样我就可以用它得到每个数组项的多个整数了?我可以使用\d+检测下面最上面的str中的一个整数。但是,函数将与下面的两个示例一起出错,str=7yes9 Sir2,等等。谢谢 //str = "10 2One Number*1*"; //output -> [10, 2One, Number*1*] -> [10 + 2 + 1] -> 13 var str = "7Yes9 Sir2"; //output -> NaN

这里有人能告诉我修改下面regexp的方法吗,这样我就可以用它得到每个数组项的多个整数了?我可以使用\d+检测下面最上面的str中的一个整数。但是,函数将与下面的两个示例一起出错,str=7yes9 Sir2,等等。谢谢

//str = "10 2One Number*1*";
//output -> [10, 2One, Number*1*] -> [10 + 2 + 1] -> 13

var str = "7Yes9 Sir2";  
//output -> NaN

//var str = "8pop2 1";
//output -> NaN

function NumberAddition(str) {  
  input = str.split(" ");  
  var finalAddUp = 0;  
  var finalArr = [];  

  for(var i = 0; i<=input.length-1; i++) {  
    var currentItem = input[i];  
    var regexp = /(\d+)/g;  
    finalArr.push(Number(currentItem.match(regexp)));  
    var itemToBeCounted = +finalArr[i];  
    finalAddUp += itemToBeCounted;  
  }  
  return finalAddUp;  
}  

console.log(NumberAddition(str));  
试一试

HTML

JS


请参阅此工作

它失败,因为操作编号不允许在上,并且您清楚!有超过1场比赛。重新考虑你的方法。我昨天刚学过RegExp。这是针对用于学习目的的编码挑战。我不知道如何重新考虑我的方法。再说一遍:你能帮我吗?我想我已经说过,无论如何,我不知道如何找到多个匹配项。谢谢。但是你找到了不止一个匹配项——这就是为什么你会出错的原因!尝试console.logcurrentItem.matchregexp;根据你的意见。你必须重新考虑你的方法的原因是因为你已经假设你在循环中得到了1个匹配。另外,顺便说一句,我并不怀疑你的匹配不允许数字,我想补充一点,尽管如此,第一个数组示例确实有效。它还包括数字的用法:即,//str=102一个数字*1*//输出->[10,2一个,数字*1*]->[10+2+1]->13我能问一下为什么这里允许数字,但在其他示例中不允许吗?只是好奇,因为我不明白,而你似乎更明白。嘿。谢谢你的回复。抱歉,但不幸的是,该网站只允许在解决手头的任务时实现JavaScript。太糟糕了,你是说因为jQuery?只需执行document.getElementById'res'。innerHTML=res;而不是jQuery调用。
<span id="res"></span>
var str = "7Yes9 Sir2";  
var matches = str.match(/\d+/g);
var res=0;

for (var i=0; i< matches.length; i++) {
    res += parseInt(matches[i],0);
}

$('#res').html(res);