我想要一串數字和字符並將數字相加。在字符串中添加數字
例如:「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