Oi, Igor! Tudo bem?
Para adicionar as funcionalidades mencionadas, podemos utilizar a estrutura de repetição do-while
para verificar se o valor digitado é válido com a ajuda de algumas funcionalidades do JavaScript mostradas no código alterado abaixo:
let nome;
let numero;
// Função para verificar se a string contém apenas letras
function isOnlyLetters(str) {
return /^[a-zA-Z]+$/.test(str);
}
// Solicitar nome até que seja fornecido um valor não vazio e apenas letras
do {
nome = prompt('Informe seu nome:');
if (!nome.trim() || !isOnlyLetters(nome)) {
alert('Por favor, digite um nome válido.');
}
} while (!nome.trim() || !isOnlyLetters(nome));
// Solicitar número até que seja fornecido um valor válido
do {
let input = prompt(`${nome}, poderia digitar um número:`);
numero = parseInt(input);
if (isNaN(numero)) {
alert('Por favor, digite um número válido.');
}
} while (isNaN(numero));
// Estrutura condicional
if (numero > 0) {
alert(`${nome}, o número ${numero} é positivo.`);
} else if (numero < 0) {
alert(`${nome}, o número ${numero} é negativo.`);
} else {
alert(`${nome}, o número ${numero} é neutro.`);
}
Nesse código, na função isOnlyLetters(str)
recebemos uma string como argumento, representada por str. Somado a isso, usamos uma expressão regular (regex) entre barras (/) "/^[a-zA-Z]+$/
", de forma que: ^
indica que a correspondência deve começar no início da string, [a-zA-Z]
representa um conjunto de caracteres permitidos na string, que nesse caso são as letras minúsculas (a-z) e maiúsculas (A-Z). +, indica que deve haver pelo menos um desses caracteres na string e $, indica que a correspondência deve ocorrer até o final da string.
Portanto, a expressão regular completa significa que estamos procurando uma string que contenha apenas letras (maiúsculas ou minúsculas) e nada mais. Dessa forma, !isOnlyLetters(nome)
chama a função isOnlyLetters
e retorna verdadeiro se o nome não contiver apenas letras (se contiver números, espaços, etc.)
Além disso, o método .test(str)
testa se a string fornecida (str
) corresponde à expressão regular. Por fim, return
retorna true se a string contiver apenas letras e false caso contrário.
Somado a isso, é importante citar que em relação a expressão !nome.trim()
, o método trim()
é utilizado para remover espaços em branco do início e do final de uma string. Isso é útil para garantir que a string não seja composta apenas por espaços em branco. Por exemplo, se o usuário digitar apenas espaços em branco, nome.trim()
resultará em uma string vazia. Dessa forma, como o operador ! é o operador de negação lógica, ele inverte o valor da expressão que o segue. Portanto, !nome.trim()
será true se nome.trim()
for uma string vazia (após remover espaços em branco) e false caso contrário.
Por fim, a função isNaN(numero)
é uma função em JavaScript que verifica se o valor fornecido não é um número (NaN
, que significa "Not a Number").
Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!
Um forte abraço e bons estudos!
Caso este post tenha te ajudado, por favor, marcar como solucionado ✓