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

[Dúvida] Aceitando apenas números

Se for digitado um número e após um caracter ele valida do mesmo jeito, como fazer para ele identificar só o número?

2 respostas
solução!

Oi Rafael, tudo bem com você? Espero que sim.

Agradeço por aguardar um retorno nosso.

Isso acontece, pois o retorno do parseInt será a conversão de uma string para um número inteiro, porém essa verificação é feita apenas com o primeiro parâmetro a ser passado. Quando o primeiro elemento a ser verificado pode ser convertido em inteiro, ele consegue converter automaticamente.

Como o exemplo no código abaixo:

parseInt ("5rafael")
5

No entanto, quando o primeiro dado a ser passado é um caractere não é possível converter em inteiro, será retornado NaN:

parseInt("rafael10")
NaN

Devido a isso foi utilizado a função isNan().

No entanto, para aceitar apenas números inteiros, o código apresentado em aula sofrerá algumas modificações. Teremos que comparar se a string digitada no prompt é diferente da conversão dessa string para inteiro, ou seja, caso não seja possível converter para inteiro através da função parseInt(), significa que temos algum caractere envolvido e será necessário digitar novamente o valor, mas caso contrário, a idade deverá ser apresentada. Veja como fica em código:

var idade = prompt("Digite sua idade");

while(idade !== parseInt(idade).toString()) {
    idade = prompt("Digite apenas números. Escreva sua idade: ");    
}

alert("A idade digitada foi " + idade);

O resultado do código no navegador ficará como mostrado no gif abaixo. Veja que ao digitar uma string seguida de um número é pedido um novo número para idade:

Gif do navegador. Nela há um alert escrito “Essa página diz”. Digite apenas números. Escreva sua idade: ” Nela há uma caixa de input. Onde é digitado “rafael25” e “nathalia32” onde é mostrado novamente o alert pedindo para inserir a idade. Ao digitar 32, aparece a mensagem “ a idade digitada foi 32

Caso surjam quaisquer dúvidas, não hesite em compartilhar no fórum.

Bons estudos e a gente se vê!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Entendi, muito obrigado!