A melhor maneira é usar uma expressão regular, um operador ternário e o .test()método interno para strings.
Deixo para o Google os detalhes de expressões regulares e o método de teste para strings (são fáceis de encontrar), mas aqui vamos usá-lo para testar sua variável.
/[a-z]/i.test(your-character-here)
Isso retornará VERDADEIRO de FALSO, com base no fato de seu personagem corresponder ou não ao conjunto de caracteres na expressão regular. Nossa expressão regular verifica todas as letras az, /[a-z]/independentemente do caso, graças à ibandeira.
Portanto, um teste básico seria:
var theAnswer = "";
if (/[a-z]/i.test(your-character-here)) {
theAnswer = "It's a letter."
}
Agora precisamos determinar se é maiúsculo ou minúsculo. Portanto, se removermos o isinalizador de nossa expressão regular, nosso código acima testará as letras minúsculas az. E se mantivermos outra ifdeclaração na elseprimeira if, poderemos testar também maiúsculas usando AZ. Como isso:
var theAnswer = "";
if (/[a-z]/.test(your-character-here)) {
theAnswer = "It's a lower case letter."
} else if (/[A-Z]/.test(your-character-here)) {
theAnswer = "It's an upper case letter.";
}
E, caso não seja uma carta, podemos adicionar uma declaração final else:
var theAnswer = "";
if (/[a-z]/.test(your-character-here)) {
theAnswer = "It's a lower case letter."
} else if (/[A-Z]/.test(your-character-here)) {
theAnswer = "It's an upper case letter.";
} else {
theAnswer = "It's not a letter."
}
O código acima funcionaria. Mas é meio feio. Em vez disso, podemos usar um "operador ternário" para substituir nossas if-elsedeclarações acima. Os operadores ternários são apenas maneiras simples de codificar um if-else. A sintaxe é fácil:
(statement-to-be-evaluated) ? (code-if-true) : (code-if-false)
E eles também podem ser aninhados um no outro. Portanto, uma função pode se parecer com:
var theAnswer = "";
function whichCase(theLetter) {
theAnswer = /[a-z]/.test(theLetter) ? "It's lower case." : "";
theAnswer = /[A-Z]/.test(theLetter) ? "It's upper case." : "";
return(theAnswer);
}
O código acima parece bom, mas não funciona muito bem, porque se nosso caractere estiver em minúsculas, ele theAnswerserá definido como "" quando testar maiúsculas, então vamos aninhar:
var theAnswer = "";
function whichCase(theLetter) {
theAnswer = /[a-z]/.test(theLetter) ? "It's lower case." : (/[A-Z]/.test(theLetter) ? "It's upper case." : "It's not a letter.");
return(theAnswer);
}
Isso vai funcionar muito bem! Mas não há necessidade de ter duas linhas separadas para definir a variável theAnswere depois devolvê-la. E devemos usá-lo lete constnão var(procure-os se não tiver certeza do porquê). Depois de fazer essas alterações:
function whichCase(theLetter) {
return(/[A-Z]/.test(theLetter) ? "It's upper case." : (/[a-z]/.test(theLetter) ? "It's lower case." : "It's not a letter."));
}
E acabamos com um pedaço de código conciso e elegante. ;)