我有一个字符串“I_am_125_developer_25”,想要结果150表示125 + 25使用javascript
var a = "I_am_125_developer_25";
我尝试了以下解决方案
for(var i = 0; i<= a.length; i++)
{
if(typeof a[i] == Number)
{
var c = a[i]; console.log(c);
}
}
这里我需要从字符串中添加两个数字,以检查它是否为数字。
答案 0 :(得分:6)
尝试
"I_am_125_developer_25".match(/\d+/g).reduce( (a,b) => Number(a) + Number(b) )
解释
Match
数字,获取数组[“125”,“25”] Reduce
数组通过添加转换后的(到数字)数组项(引用here)修改强>
如果您还想支持"I_am_1x5_developer_25"
等方案,请将其设为
"I_am_1x5_developer_25".split(/_/).filter( s => !isNaN(s) ).reduce( (a,b) => Number(a) + Number(b) );
解释
split
_
filter
输出非数字值Reduce
数组通过添加转换后的(到数字)数组项答案 1 :(得分:0)
function getSumFromString(str) {
var total = 0;
str.split('_').forEach(function(e){
var num = parseInt(e);
if(num) {
total +=num;
}
});
return total;
}
getSumFromString('I_am_125_developer_25');
答案 2 :(得分:0)
我得到了解决方案
var total = 0;
for(var i=0; i<=arr.length; i++){
if(!isNaN(arr[i])) {
total+=Number(arr[i]);
}
}
console.log(total);