1
resposta

Como verificar se os dados informados é uma String, e que não contém números?

No código abaixo enquanto os dados informados for uma string, ele repetirá o laço perguntando a Idade novamente. Caso queira verificar de forma contrária, aceitar os dados somente se for String, como deveria proceder.

ex: caso eu peça para usuário digitar seu nome, e ele digitar Thiago123. gostaria que o programa repetisse o laço ate ele informa o nome sem caracteres numéricos.

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

while( isNaN (idade) ) {
    idade = parseInt( prompt ("Digite sua idade"));
}

alert(idade);
1 resposta

Bom dia meu aluno. Com base no que você aprendeu, você pode fazer assim:

<script>
// não sabemos ainda se é um texto ou um número
var nome = prompt("Digite seu nome");

/* na própria condição while ele tenta converter para número 
com parseInt. Se for número, o resultado será a string convertida para número, se for uma string, o resultado será NaN porque o parseInt
 não consegue converter uma string como "Flávio" para um número. Agora vem o pulo do gato!

A função  isNaN retorna true caso o valor não seja um número e false caso ele seja. Queremos repetir com while enquanto o
valor digitado é um número! Se for NaN, é porque você digitou
 uma string. É por isso que usamos `== false`. Se não deu
 problema na conversão e é um número, é porque você digitou 
um número e não um texto.
*/

while(isNaN(parseInt(nome)) == false) {
    nome = prompt ("Digite sua nome");
}

alert(nome);
</script>

É possível evitar o == false dessa forma:

while(!isNaN(parseInt(nome))) {
    nome = prompt ("Digite sua nome");
}

O exclamação inverdade o resultado booleano. Se for true, vira false, se for false vira true.

Existem outras formas de fazer isso, por exemplo, através de expressões regulares, mas isso você aprenderá nos cursos de JavaScript, pois nosso foco aqui é lógica.

Por fim, essa é uma solução possível com base no que você aprendeu.

Sucesso e bom estudo, meu aluno!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software