[JS] Autoriser que des lettres et des chiffre
Master
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour (:
Je suis en train de faire un site d'upload, et je sèche, je sais à peine utiliser les regex donc ce que j'ai fais avec ne marchais pas, j'ai donc fais mon petit truc pour enlever les espaces, et ça marche, pour le moment comme vous pouvez le voir ce code interdit les espaces et les + mais j'ai pas envie de recopier html code par html code pour chaque caractère ...
Donc ce code marche, (oui il a des jambes) mais il faudrais recopier une liste interminable pour que ça laisse marquer que des lettres majuscules, minuscules, et des chiffres.
Donc voila, je pense que pour certains ce que je veux faire est assez confus, donc ce que je voudrais c'est:
- Autoriser (si possible avec le même script) les A-Z et a-z et les 0-9.
- Que ça reste en une ligne dans le code, et que ça reste dans mon input (c'est pour includer)
PS:
- Mon code dois s'includer.
- le code affiché (<input type [...] return false;" />) est dans une variable.
- Oui mon site est en anglais (:
Merci beaucoup au personnes qui pourront m'aider.
Je suis en train de faire un site d'upload, et je sèche, je sais à peine utiliser les regex donc ce que j'ai fais avec ne marchais pas, j'ai donc fais mon petit truc pour enlever les espaces, et ça marche, pour le moment comme vous pouvez le voir ce code interdit les espaces et les + mais j'ai pas envie de recopier html code par html code pour chaque caractère ...
<input type="text" id="nickname" name="nickname" maxlength="20" size="30" placeholder="Type your nickname here" onKeypress="if (event.keyCode == 32, 43) event.returnValue = false; if (event.which == 32) return false; if (event.which == 43) return false;" />
Donc ce code marche, (oui il a des jambes) mais il faudrais recopier une liste interminable pour que ça laisse marquer que des lettres majuscules, minuscules, et des chiffres.
Donc voila, je pense que pour certains ce que je veux faire est assez confus, donc ce que je voudrais c'est:
- Autoriser (si possible avec le même script) les A-Z et a-z et les 0-9.
- Que ça reste en une ligne dans le code, et que ça reste dans mon input (c'est pour includer)
PS:
- Mon code dois s'includer.
- le code affiché (<input type [...] return false;" />) est dans une variable.
- Oui mon site est en anglais (:
Merci beaucoup au personnes qui pourront m'aider.
A voir également:
- [JS] Autoriser que des lettres et des chiffre
- Clavier iphone chiffre et lettre - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Excel trier par ordre croissant chiffre - Guide
- Chiffre en lettre - Télécharger - Outils professionnels
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
1 réponse
Salut Master,
Je ne sais pas ce que tu veux dire par "s'includer".
Mais une vérification peut être faite comme cela :
A ajouter avant ton /> terminant ta balise input.
OnBlur est déclenchée lorsque la input perd le focus (l'utilisateur clique ailleurs, par exemple).
Outre tes critères, la regex exige que la chaîne ait au moins deux caractères (ce qui semble un minimum pour un surnom). Si tu ne veux pas cette condition, remplace "{2,}" par "+" qui exigera qu'il y ait un caractère ou d'avantage, ou par ce que tu veux.
Dal
Je ne sais pas ce que tu veux dire par "s'includer".
Mais une vérification peut être faite comme cela :
onBlur="if ( !document.getElementById('nickname').value.match(/^[0-9A-Z]{2,}$/i) ) { alert('NOK'); }"
A ajouter avant ton /> terminant ta balise input.
OnBlur est déclenchée lorsque la input perd le focus (l'utilisateur clique ailleurs, par exemple).
Outre tes critères, la regex exige que la chaîne ait au moins deux caractères (ce qui semble un minimum pour un surnom). Si tu ne veux pas cette condition, remplace "{2,}" par "+" qui exigera qu'il y ait un caractère ou d'avantage, ou par ce que tu veux.
Dal
merci
Si javascript est désactivé, le formulaire va envoyer ce qui est saisi. De toutes façons le javascript n'est là que pour accélérer la réponse à l'utilisateur, le serveur recevant les données doit de toutes façons les revérifier et renvoyer une erreur si nécessaire. Si tu ne le fais pas, quelqu'un de mal intentionné pourrait envoyer n'importe quoi à ton serveur et potentiellement mettre en danger sa sécurité.
Si tu veux mettre "if ( !document.getElementById('nickname').value.match(/^[0-9A-Z]{2,}$/i) ) { alert('NOK'); }" dans un "script" séparé du code html, fait le. Tu crées une fonction de vérification dans ton script et tu mets cela dedans.
Si tu as plus d'un input à vérifier, tu pourras y faire toutes tes vérifications et les déclencher lorsque le bouton OK de ton formulaire est pressé, avec un événement "onsubmit" sur ta balise "form" :
<form name="myform" action="mypage.php" onsubmit="return form_verifications()"
method="post" >
A toi de gérer comment tu veux faire, adaptes et fais le "return false" lorsque toutes tes vérifications sont faites et que tu as informé l'utilisateur de tous les problèmes rencontrés sur sa saisie, etc.
Ais-je bien compris ce que tu voulais dire ?
Dal
Je passe par la fonction htmlentities.
Mais même si je ne le ferrais pas ce code sert juste à donner le nom d'une image. Le nom sert juste de "plus" sur l'image. C'est pour ça que je veux absolument qu'il reste dans mon input comme le code que je vous ais montré, c'est aussi pourquoi je veut juste des lettres et chiffres.
Master.
J'ai essayer sur le input seul et ça marche pas.
Qu'as-tu essayé et qu'est-ce qui ne "marche pas" ?
Pour déboguer du Javascript, c'est bien de consulter les messages d'erreur sur la console.
Dal