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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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?
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:
Caso surjam quaisquer dúvidas, não hesite em compartilhar no fórum.
Bons estudos e a gente se vê!
Entendi, muito obrigado!