Javascript tester un champ qui ne doit contenir que des lettre

Résolu
pho3nixhunt3r Messages postés 6 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 juillet 2008 - 16 juil. 2008 à 11:53
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 16 juil. 2008 à 14:43
Bonjour à tous,

alors voilà je suis en train de rédigé un formulaire,

pour la vérification du numéro de téléphone j'utilise isNaN,
existe t' il  son opposer pour vérifier que les champs nom et prénom ne contiennes que des lettres ??

Sinon avez vous une autre technique ?? d'avance merci.

function verif(email) {
                var arobase = email.indexOf("@")
                var point = email.lastIndexOf(".")
                if((arobase < 3)||(point + 2 > email.length)
                   ||(point < arobase+3)) return false
                return true
                }
    function zip(code_postal) {           
                if (code_postal.length<3) return false
                return true
                }
    function ziptel(telephone) {           
             if (isNaN(telephone)) return false
            return true
            }   
    function ziptelnum(telephone) {           
     if (telephone.length!=10) return false
    return true
    }
    //Ici je ne fais qu' empécher qu'on ne rentre que des nombres et j'aimerais qu'il soit impossible d'en rentrer
    function nomnum(nom) {           
             if (isNaN(nom)) return true
            return false
            }
<hr size ="2" width="100%" />if(nom.value=="") {
               alert("Un nom est requis !")
               nom.focus(); return false }
              
            if(!nomnum(nom.value)){
            alert("Votre nom ne semble pas cohérent !"); nom.value=""
            nom.focus();return false }  
              
            if(prenom.value=="") {
               alert("Un prénom est requis !")
               prenom.focus(); return false }
              
            if(adresse.value=="") {
               alert("Une adresse est requis !")
               adresse.focus(); return false }
              
            if(code_postal.value=="") {
               alert("Un code postal est requis !")
               code_postal.focus(); return false }
              
           if(!zip(code_postal.value)){
            alert("Code postal invalide !"); code_postal.value=""
            code_postal.focus();return false }
              
            if(ville.value=="") {
               alert("Une ville est requise !")
               ville.focus(); return false }
                
            if(telephone.value=="") {
               alert("Un numéro de téléphone est requis !")
               telephone.focus(); return false }
              
           if(!ziptel(telephone.value)){
            alert("N° de téléphone invalide !"); telephone.value=""
            telephone.focus();return false }
           
            if(!ziptelnum(telephone.value)){
            alert("N° de téléphone invalide !"); telephone.value=""
            telephone.focus();return false }
              
               if(email.value=="") {
               alert("Un Email est requis !")
               email.focus(); return false }
              
            if(!verif(email.value)){
                alert("Email invalide !"); email.value=""
                email.focus();return false }
         
            return true
            }

9 réponses

pho3nixhunt3r Messages postés 6 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 juillet 2008
16 juil. 2008 à 13:53
Merci pour ta patience, lol.
j'ai trouver mes réponses ici et sur mon fichier ça donne ça :
var reg_alphab = /^[A-Za-z]+$/;
    function nomnum(nom) {
    if (!(reg_alphab.exec(nom)!=null)) return false
    return true
    }
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
16 juil. 2008 à 12:10
bonjour,
une expression régulière ?
<script>
function test(zone)
{    return zone.match(/[^a-z]/i);    }
alert(test("a2 342"));
alert(test("abCDfe"));
</script>

pas testé, mais probablement pas loin....

<hr />                Cordialement            Bul        
1
pho3nixhunt3r Messages postés 6 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 juillet 2008
16 juil. 2008 à 12:43
Bonjour Bultez et merci d'avoir répondu aussi rapidement,

je ne suis pas très calé en js pour l'instant,
mais d'après mes recherche de ce matin l'expression régulière me semble en effai  adapter à mon problème.

j'ai donc vue d'après ce  que tu écrit en les crochet que tu laisse l' exception  au minuscules et je pense rajouter [^A-Z]
(si j'ai bien appris ma leçon.)

j'aimerai juste avoir si cela ne te dérange pas quelques info sur le return et sur les alerte.
Histoire de pouvoir l'adapter a mon code et d'avoir un true ou false.

D'avance merci.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
16 juil. 2008 à 12:53
A-Z à priori inutile, puisque /../i qui "ignore" les majuscules/minuscules

une fonction retourne quelque chose à l'appelant
    ( si on ne met rien, ça retourne true )
    ici, on retourne le résultat du match, qui sera exploté par l'appelant

alert ? c'est afficher un message, ici pour l'exemple

si tu veux retourner true ou false, "il suffit" de retourner
le résultat d'une comparaison avec ce qui va bien...
par exemple return ( a==1 ) retournera true si a=1, false sinon.
regarde le résultat du match. ( mais bon... ici, un peu "inutile" )

<hr />                Cordialement            Bul        
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
16 juil. 2008 à 12:56
remarque : pour vérifier l'email ( enfin.... la syntaxe ! pas sa validité ! ),
on utilise aussi une expression régulière ( c'est plus mieux )
<hr />                Cordialement            Bul        
0
pho3nixhunt3r Messages postés 6 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 juillet 2008
16 juil. 2008 à 13:09
Donc si j'ai bien compris si j'écrit :
<script>
function nomnum(nom) {           
            return zone.match(/[^a-z]/i);
            }
</script>

si il y a des chifres nomnum = true
sinon nomnum = false
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
16 juil. 2008 à 13:39
ben non...
1° ça va planter. zone ? il connait pas !
2° match ne donne pas true ou false
    affiche ce que ça donne ( un alert ? )
<hr />                Cordialement            Bul        
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
16 juil. 2008 à 14:41
tu pouvais faire ( comme avec mon exemple ! )
return (reg_alphab.exec(nom)!=null)    ou presque...( == ) en fonction du résultat que tu voulais...
<hr />                Cordialement            Bul        
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
16 juil. 2008 à 14:43
A-Z inutile si on met /../i , +$ pas sûr...   
mais si ça baigne et que cela te convient : nickel
<hr />                Cordialement            Bul        
0
Rejoignez-nous