Javascript tester un champ qui ne doit contenir que des lettre [Résolu]

Signaler
Messages postés
6
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juillet 2008
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
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

Messages postés
6
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juillet 2008

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
    }
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
35
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        
Messages postés
6
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juillet 2008

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.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
35
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        
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
35
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        
Messages postés
6
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juillet 2008

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
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
35
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        
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
35
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        
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
35
A-Z inutile si on met /../i , +$ pas sûr...   
mais si ça baigne et que cela te convient : nickel
<hr />                Cordialement            Bul