如何拆分String并获取Number表单呢?

时间:2017-11-27 13:53:36

标签: javascript

我有一个字符串“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); 
    } 
}

这里我需要从字符串中添加两个数字,以检查它是否为数字。

3 个答案:

答案 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);