2017-11-27 8 views
1

私は1つの文字列「I_am_125_developer_25」を持っているし、欲しい150は、javascriptを文字列を分割して数値を取得する方法は?

var a = "I_am_125_developer_25"; 

を使用して125 + 25を意味し、その結果、私は解決策

ここ
for(var i = 0; i<= a.length; i++) 
{ 
    if(typeof a[i] == Number) 
    { 
     var c = a[i]; console.log(c); 
    } 
} 

次しようとした私は、文字列から2つの数値を追加する必要があるかどうかをチェックする必要がありますそれは数字かどうかです。

+0

はあなた '_'、または単に任意の数字をつかむことで、間違いなく唯一の分割はありますか?小数点も許可されていますか? – Rhumborl

答えて

6

変換(番号)が配列項目を追加することにより、アレイ配列[ "125"、 "25"]

  • Reduceを取得し、

    "I_am_125_developer_25".match(/\d+/g).reduce((a,b) => Number(a) + Number(b)) 
    

    説明

    • Match番号を試します(参照番号here

    編集

    あなたもそれが

    "I_am_1x5_developer_25".split(/_/).filter(s => !isNaN(s)).reduce((a,b) => Number(a) + Number(b)); 
    

    説明

    • split非数値アウト_
    • filterにより行い、その後、"I_am_1x5_developer_25"のようなシナリオをサポートしたい場合は
    • Reduce変換された配列項目
  • +0

    'var a =" I_am_1x5_developer_25 "' => 31? – Rhumborl

    +0

    @Rhumborl OPがこのシナリオを処理したいのかどうかは分かりませんが、とにかくその修正を追加しましたか。それを指摘してくれてありがとう。 – gurvinder372

    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'); 
    
    0

    (数に)私は簡単な解決策は、文字列を分割し、それを介して、アレイ、ループ作り、数字が使用されている検証することです解決

    var total = 0; 
    for(var i=0; i<=arr.length; i++){ 
        if(!isNaN(arr[i])) { 
        total+=Number(arr[i]); 
    } 
    } 
    console.log(total); 
    
    0

    を得ましたisNaN()方法と総括番号:

    var a = "I_am_125_developer_25"; 
     
    a = a.split('_'); 
     
    var sum = 0; 
     
    for(var i = 0; i < a.length; i++){ 
     
        if(!isNaN(a[i])){ 
     
        sum += parseInt(a[i]); 
     
        } 
     
    } 
     
    console.log(sum);

    +1

    答えをありがとう、私は同じでした。どうもありがとう!! –

    0

    これを試してみてください:

    var string = "I_am_125_developer_25"; 
    var regex = /(\d+)/g; 
    var numArray = string.match(regex); 
    var sum=0; 
    for (var i=0;i<numArray.length;i++){ 
        sum+=parseInt(numArray[i]); 
    } 
    console.log(sum); 
    
    関連する問題