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?
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!