Page 1 sur 1

controle zone de saisie

Posté : 17 janv. 2008, 17:27
par Oxley
Bonjour,
Apres avoir rechercher sur le forum je vous pose donc la question à vous!!!

Je voudrais savoir comment peut on faire pour vérifier si une zone de saisie (input) ne contient que des chiffres ou autrres(lettres+ caracteres spéciaux ,;./:!(-|...)

Je dois utiliser le code ascii je pense mais en javascript je ne vois pas du tout comment faire, j'ai essayé de rechercher sur le net et rien
J'ai trouvé la fonction isNaN() qui retourne que des chiffres il me manque donc l'inverse pour que des lettres

DE plus j'aimerais savoir comme passer en parametre d'une fonction un objet du formulaire pour ainsi controler plusieurs eléments d'un formulaire sans écrire 100 fois le meme code:

Un truc du genre mais je sais pas comment faire

function verif(parametre)
x=document.formulaire.parametre.value;
z=x.charAt(O);
y=parseInt(x, 10);

if (z==0)
{
y="0"+y;
}

}
selon le parametre l'objet input change...

Voila j'espere avoir été clair

Merci
:D

Posté : 17 janv. 2008, 17:40
par Berzemus
En JS tu as la méthode replace() d'une chaine.

Il suffit, avec un peu de regex, de remplacer tout les chiffres d'une chaîne par du vide, et regarder sa longueur. S'il reste quelqeu chôse, c'est qu'il y a autre chôse que des chiffres..

Dans ce genre:

Code : Tout sélectionner

var chaine="1254abc" var reg = new RegExp("(\d)",g) chaine = chaine.replace(reg,"") if (chaine.length > 0) alert("héé,y'a des trucs!") else alert("C'est bon, y'a pas de trucs")

Posté : 17 janv. 2008, 18:21
par Oxley
Oki merci, donc ca c'est pour les chiffres, mais je cherche plutot pour autoriser que les lettres et éviter les caracteres spéciaux

Posté : 17 janv. 2008, 18:39
par AB

Posté : 18 janv. 2008, 15:41
par Oxley
Merci
Donc j'ai regardé vos idéeset j'ai élaboré un programme qui extrait tous les chiffres (0-9) d'une saisie dans un input
Mon programme fonctionne mais n'affiche que la 1er chiffre aparrant. donc je voudrais qu'il affiche tout les chiffres de la saisie, voici mon code:

Code : Tout sélectionner

<html><head><title>Test</title> <script type="text/javascript"> function verification() { <!-- var x=document.formulaire.chiffre.value; var recherche = /\d/; var resultat = recherche.exec(X); document.getElementById('zs_postal').innerHTML =resultat; if(document.formulaire.prenom.value == "") { return false; } //--> } </script> </head> <body> <form name="formulaire" id="formulaire" action="traitement.php" method="post" onSubmit="return verification()"> <input type="text" name="chiffre" id="chiffre" /> <br/> <span id="zs_postal"></span> <br/> <input type="text" name="prenom" id="prenom" /> <input type="submit" value="Ok" /> </form> </body> </html>

Posté : 18 janv. 2008, 15:56
par Berzemus
Ben oui..
"\d" ne signifie que "1 caractère qui est un chiffre".
Il faut le répeter.. ( "\d\d\d", ce qui ferait une suite de 3 chiffres)

Regarde ceci:
\d{1,4} : 1 à 4 chiffres qui se suivent.
\d{3,} : 3 à l'infini
\d{0,} : aucun à l'infini (correspond à \d* ).
\d{1,} : 1 à l'infini (correspond à \d+ ).

Note: j'inverse tout le temps + et *, donc je peux me tromper.

Posté : 18 janv. 2008, 16:24
par Cyrano
Note: j'inverse tout le temps + et *, donc je peux me tromper.
Rappel :
  • ? => 0 ou 1;
  • + => 1 ou plus...;
  • * => 0 à plus...

Posté : 18 janv. 2008, 16:49
par Oxley
merci beaucoup Berzemus, cela fonctionne, mais il reste un petit pb :(

quand on ecrit par exemple dans mon input : 12AB34, cela me renvoie 12, et moi j'aimerai qu'il me renvoie 1234.

J'ai essayé de mettre /d+/d+/d+ dans l'idée de répéter l'opération mais ca ne fonctionne pas.
voici le lien de mon code : http://jehutyraiden.free.fr/test3.php
(le 2eme input sert simplement a ne pas envoyer le formulaire donc à ne rien mettre dedans)

merci pour vos aides cest vrément sympa !

Posté : 18 janv. 2008, 17:10
par Berzemus
(merci cyrano)

Hum.. je te comprends plus..

Je te fais un script qui te dis s'il y a d'autres trucs que des chiffres,
Tu dis que tu veux vérifier la présence de lettres et caractères spéciaux,
Et maintenant tu veux récuperer des chiffres ? C'est confus dans ma tête..

Sinon, tout simple, tu reprends mon premier script, et tu changes \d (tous les chiffres) par \D (tout ce qui n'est pas un chiffre). Du coup, il va te retirer tout ce qui n'est pas un chiffre de ta chaîne et il te restera.. que des chiffres :anniversaire: