IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

controle de nombre avec js


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 201
    Par défaut controle de nombre avec js
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <html>
    <head>
    	<script type="text/javascript">
    		function tel(){
    			var tel= /[0-9]$/;
    			if(!tel.test(document.getElementById("tel").value))alert('Nom Numerique')
    }
    	</script>
    </head>
    <body>
    <form name="f1" action="" method="post" onSubmit="tel();">
    <input type="text" id="tel"/>
    <input type="submit">
    </form>
    </body>
    </html>
    je ne sais pas pourquoi ce code ne marche pas

  2. #2
    Membre expérimenté Avatar de k1rby
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 181
    Par défaut
    Alors de 1 ta variable a le même nom que ta fonction, je suis pas sûr qu'il apprécie, de 2 .test() c'est pour les object RegExp, et de 3 il manque l'accolade fermante de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function tel(){
         var maReg= new RegExp('[0-9]$');
         if(!maReg.test(document.getElementById("tel").value)){
              alert('Nom Numerique')
         }
    }
    De plus sachant que tu ne commences pas par un ^ pourraient passer ton test :
    hjzefblegrblredb1
    56789jhsbfvsh,vf2
    etc., bref toute chaîne de caractère finissant par un chiffre

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 201
    Par défaut
    j'ai essayé mais ca n'a pas marché

  4. #4
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par hraiwen Voir le message
    j'ai essayé mais ca n'a pas marché
    essayé quoi ?
    Heu... k1rby te donne une réponse détaillée, fais au moins l'effort de prendre plus de 4 secondes pour répondre ^^ (c'est quand même ton problème, au départ...)

    Outre ses pertinentes remarques, ce que k1rby t'explique à la fin pour l'écriture de ta regexp, c'est de placer un caractère signifiant "début de la chaine testée" :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         var maReg= new RegExp('^[0-9]$');

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 201
    Par défaut
    merci bien pour tes remarque,
    j'ai essayé ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <html>
    <head>
    	<script type="text/javascript">
    		function tel(){
         var maReg= new RegExp('^[0-9]$');
         if(!maReg.test(document.getElementById("tel").value)){
              alert('Nom Numerique')
         }
    }
     
    	</script>
    </head>
    <body>
    <form name="f1" action="" method="post" onSubmit="tel()">
    <input type="text" id="tel"/>
    <input type="submit" value="test">
    </form>
    </body>
    </html>
    ca na pas marché

  6. #6
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Tu veux dire que l'alert de ta fonction tel ne se déclenche jamais, que la saisie soit conforme ou pas ?

    (il manque un ";" après cet alert, d'ailleurs, mais ca ne doit pas poser de problème je suppose, comme l'instruction est unique dans son bloc...)

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    Modifie le nom de la fonction car il y a conflit avec l'id de l'input.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <html>
    <head>
    	<script type="text/javascript">
    		function telef(){
    	  var maReg=  /[0-9]$/;
         if(!maReg.test(document.getElementById("tel").value))
    	 {
              alert('Nom Numerique');
    		  return false;
         }
    }
     
    	</script>
    </head>
    <body>
    <form name="f1" action="" method="post" onsubmit="return telef()">
    <input type="text" id="tel"/>
    <input type="submit" value="test">
    </form>
    </body>
    </html>

  8. #8
    Membre expérimenté Avatar de k1rby
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 181
    Par défaut
    Citation Envoyé par hraiwen Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var maReg= new RegExp('^[0-9]$');
    Tu es conscient qu'avec cette expression régulière seul 0 ou 1 ou 2 [...] ou 9 passeront le test. Par exemple 0123456789 ne le passera pas.

    Ton id s'appelle tel, je suppose donc que c'est pour vérifier un numéro de téléphone. A ce compte là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var maReg= new RegExp('^[0-9]{2}-?\\.?\\s?[0-9]{2}-?\\.?\\s?[0-9]{2}-?\\.?\\s?[0-9]{2}-?\\.?\\s?[0-9]{2}$');
    @andry.aime: le fait que la fonction ai le même nom que l'id ne pose pas de problème (en tout cas, quand je fais mes tests, ça marche nickel)

  9. #9
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    @k1rby
    J'ai testé sous IE 6 et FF3, mais cela ne marche pas avec l'input et la fonction ayant le même nom, essaye ce code et tu verras l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <html>
    <head>
    	<script type="text/javascript">
    		function tel(){
    	  var maReg=  /[0-9]$/;
         if(!maReg.test(document.getElementById("tel").value))
    	 {
              alert('Nom Numerique');
    		  return false;
         }
    }
     
    	</script>
    </head>
    <body>
    <form name="f1" action="" method="post" onsubmit="return tel()">
    <input type="text" id="tel"/>
    <input type="button" onclick="tel()" value="test">
    </form>
    </body>
    </html>
    J'aimerai savoir quel navigateur tu utilises?

  10. #10
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 201
    Par défaut
    mais cette fonction admet le test comme ca:
    ZZ2333
    j'ai essayé mais je n'ai pas trouver
    je veux tester le num de tel (tout sont des numeros)

  11. #11
    Membre expérimenté Avatar de k1rby
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 181
    Par défaut
    @hraiwen: lis mon post plus haut

    @andry.aime: ça me paraissait suspect que ça marche chez moi sous FF3 et pas chez toi. Après test en fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <html>
    <head>
    <title>Test</title>
    </head>
    <body>
     
    <form action="" method="post">
    <input id="tel" type="text" name="tel" /><br>
    <button type="button" onclick="tel();">Test</button>
    </form>
     
    <script type="text/javascript">
    function tel(){
    	var maReg= new RegExp('^[0-9]{2}-?\\.?\\s?[0-9]{2}-?\\.?\\s?[0-9]{2}-?\\.?\\s?[0-9]{2}-?\\.?\\s?[0-9]{2}$');
    	if(maReg.test(document.getElementById('tel').value)){
    		alert('oui');
    	}else{
    		alert('non');
    	}
    }
    </script>
    </body>
    </html>
    Ça, ça ne marche effectivement pas mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <html>
    <head>
    <title>Test</title>
    </head>
    <body>
     
    <form action="" method="post">
    <input id="tel" type="text" name="tel" /><br>
    </form>
    <button type="button" onclick="tel();">Test</button>
     
    <script type="text/javascript">
    function tel(){
    	var maReg= new RegExp('^[0-9]{2}-?\\.?\\s?[0-9]{2}-?\\.?\\s?[0-9]{2}-?\\.?\\s?[0-9]{2}-?\\.?\\s?[0-9]{2}$');
    	if(maReg.test(document.getElementById('tel').value)){
    		alert('oui');
    	}else{
    		alert('non');
    	}
    }
    </script>
    </body>
    </html>
    Ça, ça marche, le fait de sortir le bouton du form et hop ça marche. Alors je sais pas par miracle mais en effet dans le doute nommons les fonctions différemment des id.

  12. #12
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 201
    Par défaut
    svp k1rby
    je ne veux pas une forme reguliere conmme 23 23 23 23 23
    mais je veux laisser la main de taper un numero avec le minimum des nombre est 8 meme sans espace il suffit un num tel avec 8 nbre
    merci

  13. #13
    Membre expérimenté Avatar de k1rby
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 181
    Par défaut
    Ma regexp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var maReg= new RegExp('^[0-9]{2}-?\\.?\\s?[0-9]{2}-?\\.?\\s?[0-9]{2}-?\\.?\\s?[0-9]{2}-?\\.?\\s?[0-9]{2}$');
    permet de tester et d'autoriser les numéros de téléphone au format suivant :
    0123456789
    01 23 45 67 89
    01.23.45.67.89
    01-23-45-67-89

    Pour ne filtrer que les numéros de téléphone sans séparateurs et à seulement 8 chiffres il suffit de réfléchir plus de 3 secondes et de faire quelques recherches sur les expressions régulières pour voir comment ça marche avant de demander aux autres de tout faire à sa place.

  14. #14
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <html>
    <head>
    	<script type="text/javascript">
    		function telef(){
    	  var maReg=  /[0-9]$/;
    	 if(!maReg.test(document.getElementById("tel").value)||(document.getElementById("tel").value.length<8))
    	 {
              alert('Nom Numerique ou trop cour');
    		  return false;
         }
    }
     
    	</script>
    </head>
    <body>
    <form name="f1" action="" method="post" onsubmit="return telef()">
    <input type="text" id="tel"/>
    <input type="submit" value="test">
    </form>
    </body>
    </html>

  15. #15
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 201
    Par défaut
    merci bien

  16. #16
    Membre expérimenté Avatar de k1rby
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 181
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <html>
    <head>
    	<script type="text/javascript">
    		function telef(){
    	  var maReg=  /[0-9]$/;
    	 if(!maReg.test(document.getElementById("tel").value)||(document.getElementById("tel").value.length<8))
    	 {
              alert('Nom Numerique ou trop cour');
    		  return false;
         }
    }
     
    	</script>
    </head>
    <body>
    <form name="f1" action="" method="post" onsubmit="return telef()">
    <input type="text" id="tel"/>
    <input type="submit" value="test">
    </form>
    </body>
    </html>
    Ça ne marchera pas, je persiste, il faut changer cette regexp. Tel que tu le donnes, azerty1 passe le test par exemple, et bon, pas besoin d'être une lumière pour voir que ce n'est pas un numéro de téléphone valide ^^.

  17. #17
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    kirb j'en étais là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^([0-9]{2})([ .-]){1}([0-9]{2}\2){2}[0-9]{2}$
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  18. #18
    Membre expérimenté Avatar de k1rby
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 181
    Par défaut
    Haha, grilled

    J'en profite pour rappeler que dans une regexp un espace ne se représente pas par ' ' mais par \s et que le caractère . par \., . étant réservé pour représenté n'importe quel caractère

    Cela donnerai donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var maReg= new RegExp('^([0-9]{2}[\\s\\.\\-]?){3}[0-9]{2}$');

  19. #19
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    sauf dans les classes entre crochets ou l'espace peut etre représetné par ' ' et le . par .
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  20. #20
    Membre expérimenté Avatar de k1rby
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 181
    Par défaut
    Ah ouais !

    J'étais persuadé qu'il fallait les échapper dans tous les cas ^^'

    Par contre pour le - faut pas l'échapper lui ? Pasque dans une classe il représente une intervalle.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Controler la souris avec un gamepad
    Par RLX dans le forum Windows
    Réponses: 9
    Dernier message: 30/10/2008, 17h40
  2. Réponses: 5
    Dernier message: 13/09/2006, 16h47
  3. sum avec des nombres avec virgule
    Par Bruno2000 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 30/09/2004, 15h01
  4. [Format]nombres avec des 0
    Par zozolh2 dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 01/06/2004, 08h43
  5. Controler un nombre de processus identiques.
    Par ditfau6 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 24/05/2004, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo