我想要一串数字和字符并将数字相加。在字符串中添加数字
例如:“2015年,我想知道iPhone 6+的价格是多少?”
输出:2021
这里是我当前的代码:
var str = "In 2015, I want to know how much does iPhone 6+ cost?";
function sumFromString(str){
var punctuationless = str.replace(/['!"#$%&\\'()\*+,\-\.\/:;<=>[email protected]\[\\\]\^_`{|}~']/g,"");
var finalString = punctuationless.replace(/\s{2,}/g," ");
var StringList = finalString.split(" ");
var sum = [];
for (i = 0; i < StringList.length; i++)
if (isInt(StringList[i])
sum.add(StringList[i]);
sum.reduce((prev, curr) => prev + curr);
}
sumFromString(str);
我的代码将一个字符串条标点符号的,然后每个单词/数字放入数组,StringList的。
我不能得到下一部分的工作。
我试过的是迭代数组中的每个值。 if语句应该检查数组元素是否是整数。如果是这样,它会将整数添加到名为sum的空数组中。然后,我将数组的所有值,sum加起来。
为什么不直接搜索所有数字的字符串? – miken32
当您添加时,您是否将它转换为数字? 'sum.add(+ StringList [i])' –
'var matches = str.match(/ \ d +/g); var sum = matches.reduce((prev,curr)=> prev + curr);' – miken32