Quelle est la meilleure façon d'effectuer une vérification alphanumérique sur un INPUT
champ dans JSP
? J'ai joint mon code actuel
<script type="text/javascript">
function validateCode(){
var TCode = document.getElementById('TCode').value;
for(var i=0; i<TCode.length; i++)
{
var char1 = TCode.charAt(i);
var cc = char1.charCodeAt(0);
if((cc>47 && cc<58) || (cc>64 && cc<91) || (cc>96 && cc<123))
{
}
else {
alert('Input is not alphanumeric');
return false;
}
}
return true;
}
javascript
validation
t0mcat
la source
la source
Réponses:
Vous pouvez utiliser cette regex
/^[a-z0-9]+$/i
la source
""
) ne doit pas correspondre.ñ
ne tombe pas dans le modèle, cependant le caractère UTF-8 entièrement valide.charCodeAt()
. Voir jsPerf et ma réponse ci-dessous .L'inclination initiale du demandeur à utiliser
str.charCodeAt(i)
semble être plus rapide que l'alternative à l'expression régulière. Dans mon test sur jsPerf, l'option RegExp est 66% plus lente dans Chrome 36 (et légèrement plus lente dans Firefox 31).Voici une version nettoyée du code de validation d'origine qui reçoit une chaîne et renvoie
true
oufalse
:Bien sûr, il peut y avoir d'autres considérations, telles que la lisibilité. Une expression régulière sur une ligne est certainement plus jolie à regarder. Mais si vous êtes strictement préoccupé par la vitesse, vous voudrez peut-être envisager cette alternative.
la source
Vérifiez-le avec une regex.
Javascript regexen n'a pas de classes de caractères POSIX, vous devez donc écrire manuellement des plages de caractères:
Ici
^
signifie début de chaîne et$
fin de chaîne, et[0-9a-z]+
signifie un ou plusieurs caractères de0
à9
OU dea
àz
.Plus d'informations sur Javascript regexen ici: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
la source
/^[a-z0-9]+$/i
et cela couvrira les lettres minuscules et majusculesVous n'avez pas besoin de le faire un à la fois. Faites simplement un test pour ceux qui ne sont pas alphanumériques. S'il en trouve un, la validation échoue.
S'il y a au moins une correspondance d'un non alphanumérique, il le sera
return false
.la source
Je créerais une méthode prototype String:
Ensuite, l'utilisation serait:
la source
En outre, cet article aide également à comprendre la validation alphanumérique JavaScript.
la source
Excusez-moi à tous, pas de controverse. Mais pour que la communauté grandisse comme elle m'a fait grandir ces dernières années, il est bon de prendre quelques notes.
La vraie chaîne alphanumérique est comme
"0a0a0a0b0c0d"
et pas comme"000000"
ou"qwertyuio"
.Toutes les réponses que j'ai lues ici, sont retournées
true
dans les deux cas. Et pardonnez-moi, à mon humble avis, ce n'est pas juste .Si je veux vérifier si ma
"00000"
chaîne est alphanum, ma réponse "humaine" est incontestablement FAUX.Pourquoi? Facile. Je ne trouve aucune lettre char. Donc, est une simple chaîne numérique
[0-9]
.Par contre, si je voulais vérifier ma
"abcdefg"
chaîne, ma réponse "humaine" est même FAUX. Je ne vois pas de chiffres, donc ce n'est pas alphanumérique. Juste alpha[a-zA-Z]
.La réponse de Michael Martin-Smucker a été éclairante.
Cependant, il visait à obtenir de meilleures performances au lieu de regex. C'est vrai, en utilisant un moyen de bas niveau, il y a une meilleure performance. Mais les résultats sont les mêmes. Les chaînes
"0123456789"
(uniquement numérique),"qwertyuiop"
(uniquement alpha) et"0a1b2c3d4f4g"
(alphanumérique) sont renvoyéesTRUE
sous forme alphanumérique. Même/^[a-z0-9]+$/i
manière de regex . La raison pour laquelle l'expression régulière ne fonctionne pas est aussi simple qu'évidente. La syntaxe[]
indique ou , non et . Donc, si c'est uniquement numérique ou si ce n'est que des lettres, regex retournetrue
.Mais la réponse de Michael Martin-Smucker était néanmoins éclairante. Pour moi. Cela m'a permis de penser à "bas niveau", de créer une vraie fonction qui traite sans ambiguïté une chaîne alphanumérique. Je l'ai appelé comme fonction relative PHP
ctype_alnum
( modifier 2020-02-18: Où, cependant, cela vérifie OU et non ET ).Voici le code:
... et voici la DEMO
Je suis venu à cette discussion parce que je cherchais une alternative en javascript à la fonction PHP. Je n'ai pas trouvé la réponse «prête à l'emploi», mais comme cela arrive souvent sur Stackoverflow, le concept de connaissance et de comparaison les uns avec les autres est quelque chose de sublime, qui vous amène à réfléchir à la réponse de quelqu'un et à trouver ensemble la solution que vous étiez chercher, mais vous ne pensiez pas que vous le saviez.
Et partagez-le!
Meilleur
oscar
la source
return isNumeric || isAlpha;
est alphaNumeric. Ce qui précède peut être utile à certains.Dans une boucle serrée, il est probablement préférable d'éviter les regex et de coder en dur vos caractères:
la source
Pour vérifier si input_string est alphanumérique, utilisez simplement:
la source