Comment puis-je tester si une lettre dans une chaîne est en majuscule ou en minuscule en utilisant JavaScript ?
Cela fonctionne parce que la représentation en chaîne d'un objet est [object Object]
. Vous vérifiez essentiellement si le code de caractère de la lettre vient avant [
. Puisque les codes de caractères pour Z, [, a
sont 90, 91, 97
respectivement, la comparaison est vraie pour les lettres majuscules et fausse pour les lettres minuscules. En d'autres termes, il s'agit d'une méthode aussi peu pratique que l'utilisation de chiffres en base 36 pour obtenir les lettres de l'alphabet.
3 votes
Puis-je clarifier la question - vous voulez tester si une lettre particulière dans une chaîne est majuscule ou minuscule - ou voulez-vous tester si la chaîne entière contient une lettre qui est majuscule ou minuscule. si c'est la dernière, alors comment proposez-vous d'obtenir le résultat sans faire une boucle dans la chaîne et tester une lettre à la fois ?
3 votes
jsperf.com/isupper-comparison/5 Il y a quelques idées, et vous pouvez aussi les tester pour la vitesse.
2 votes
Idée n°4 (
[:upper:]
) est rapide et très cool sauf qu'il ne fonctionne pas, voir mon commentaire ci-dessous et mon corrigé jsperf.com/isupper-comparison/7 .8 votes
str == str.toUpperCase();
renvoie à vrai ou faux2 votes
str.toUpperCase() === str && str.toLowerCase() !== str
si vous ne voulez vraiment pas utiliser regExp.