Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

como posso fazer isto em javascript

preciso tirar os numeros destre string asQE12k903lasdjuoqwe871kiasd91alaskjcasjkghehuivposdlkngbuyuo colocar cada uma em um array e depois somar comecei a fazer este codigo mais não consigo ir adiante

var string = "asQE12k903lasdjuoqwe871kiasd91alaskjcasjkghehuivposdlkngbuyuo";
var dados = numero(string);
console.log(dados);

function numero(string){
  var num = string.replace(/[^0-9]/g, '+');
  console.log(num);
  return parseInt(num);
}
3 respostas

ai depois, dei uma melhorada no codigo, porem ainda não consegui resolver 100%

var string = "asQE12k903lasdjuoqwe871kiasd91alaskjcasjkghehuivposdlkngbuyuo";

    var dados = numero(string);
    console.log(dados);



    function numero(string){
      var num = string.replace(/[^0-9]/g, 'a');
      return (num);
    }

    window.onload = function() {
        str = dados;
        var arrayPrincipal = str.split('a');
        var content = '';
        var array = new Array(new Array(4), new Array(4), new Array(4), new Array(4), new Array(4), new Array(4));
        for (i = 0; i < arrayPrincipal.length; i++) {
            subArray = arrayPrincipal[i].split('a');             
            for (t = 0; t < subArray.length; t++) {
                array[t][i] = subArray[t];
                content += 'array['+t+']['+i+'] = '+array[t][i]+'\n';

            }
        }
        alert(content);
    }

Olha, não entendi muito bem sua dúvida... Seria algo nesse estilo?

  const str = 'asQE12k903lasdjuoqwe871kiasd91alaskjcasjkghehuivposdlkngbuyuo'

  const obtainAllNumbers = str => str.match( /\d/g )
  const numbersString = obtainAllNumbers (str )
  const numbersInt = numbersString.map( item => parseInt( item ) )

  const add = ( a, b ) => a + b
  const sum = numbersInt.reduce( add, 0 )

  console.log( 'String Numbers:', numbersString )
  console.log( 'Integer Numbers:', numbersInt )
  console.log( 'Sum:', sum )

Resultado:

String Numbers:: (10) ["1", "2", "9", "0", "3", "8", "7", "1", "9", "1"]
Integer Numbers:: (10) [1, 2, 9, 0, 3, 8, 7, 1, 9, 1]
Sum: 41
solução!

Oi Celso,

Em JavaScript puro da pra fazer assim:

HTML:

<p id="response"></p>

JavaScript

var string = "asQE12k903lasdjuoqwe871kiasd91alaskjcasjkghehuivposdlkngbuyuo"; //string a ser testada

var regex = /\d+/g; // declaração do regex que pegará somente os números. Se quizer pegar um número por vez, e não uma sequência que apareça junta, mude para '/\d/g'; 

var numbers = string.match(regex); // aplicando o match na string com o regex que foi definido, e terá como retorno um array com os resultados

var soma = 0;

for(var i = 0; i < numbers.length; i++){
    soma += parseInt(numbers[i]); // adionando a variável soma, a soma dos valores encontrados
}

document.getElementById("response").innerHTML = "<strong>String:</strong> " + string + "<br><br><strong>Números encontrados:</strong> " + numbers + "<br><br><strong>Soma:</strong> " + soma; //imprime

Espero ter ajudado \\//_