Je suis en train d'extraire un caractère dans une chaîne Javascript avec :
var first = str.charAt(0);
et je voudrais vérifier si c'est une lettre. Étrangement, il ne semble pas que cette fonctionnalité existe en Javascript. Du moins, je ne la trouve pas.
Comment puis-je tester cela ?
4 votes
Créer un numéro et le tester par rapport à
NaN
? Ou simplementisNan(first)
Je suppose.6 votes
@Marc Si ce caractère était '-' par exemple, votre test n'indiquerait pas que c'est une lettre...
2 votes
Définir "lettre" ? L'alpha anglais seulement, ou autre chose ? Voulez-vous faire une "liste noire" ou une "liste blanche" ?
0 votes
Bon point. Je ne suis pas un expert en js, loin de là.
0 votes
@JVerstry
-
n'est pas une lettre, pour autant que je sache.0 votes
Quelque chose comme en Java (si possible) : docs.oracle.com/javase/6/docs/api/java/lang/
3 votes
@JVerstry tout le monde ne connaît pas Java. Ne pouvez-vous pas simplement nous dire quels caractères seront autorisés ?
0 votes
@PeeHaa Vrai, mais dans le cas d'une vraie lettre, son test retournerait faux, exactement comme si c'était '-'. Donc, l'information fournie par son test serait toujours incomplète.
0 votes
@PeeHaa Ok, un caractère tel que défini dans Unicode.
0 votes
Duplicata ? stackoverflow.com/questions/10707972/
0 votes
Vous pouvez supprimer les accents et faire une simple vérification [a-z]. voir stackoverflow.com/questions/990904/
0 votes
@JVerstry J'ai ajouté ma réponse : elle traite de la question des caractères spéciaux (utilisés en espagnol, en allemand, en français, en italien et dans bien d'autres langues).
0 votes
C'est un excellent moyen de tester si un caractère est un chiffre ou non, mais pas nécessairement une lettre (en raison d'Unicode, etc.). Si tout ce dont vous avez besoin est de faire une vérification des chiffres, cela devrait fonctionner. Bien que pour des cas particuliers, il pourrait bénéficier de quelques vérifications pour les caractères qui peuvent être des "nombres" valides, comme NaN, INF, -INF, 1.0E+2, etc. En fait, je suis surpris que "-" ne soit pas considéré comme un nombre en JS, car le langage est très souple. Par exemple, il pourrait être interprété comme "-0" ou "0", comme une chaîne vide peut être comparée à "0".
3 votes
Je vois beaucoup de gens appeler JS Java ici. JS et Java ne sont pas la même chose, loin de là. L'un est essentiellement un jouet, l'autre sert à créer des sites web.
1 votes
S'il vous plaît, si vous lisez les réponses à cette question (ou si vous en écrivez une), tenez compte du fait qu'il existe tout un monde en dehors de "a-z" : diacritiques, ligatures, écritures non latines. Supposer que votre code n'aura à traiter qu'un sous-ensemble de caractères anglais est une mauvaise pratique et ouvre la voie à des logiciels défectueux sur le long terme. Notez que même en anglais, vous pouvez rencontrer "é", "ë", "æ", "&", "", etc.