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 :

Création expression régulière


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de frog43
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut Création expression régulière
    Bonjour,

    voilà je souhaite vérifier le contenu d'un champ de formulaire, il faut qu'il soit rempli par :
    1/ par 1,2 ou 3 chiffres
    Ou par :
    2/ 1 chiffre, 1 point et un chiffre (dans cette ordre)

    J'ai essayé de construire une expression mais je me suis planté quelque part (c'est la première que je fais)

    Voici ce que sa donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var reg=new RegExp("^[0-9]|[0-9]\.[0-9]$");
    var chaine=document.form1.NewPrix.value;
    if (!reg.test(chaine)){
         message+="le prix Basse saison doit être de la forme XX ou X.X !");
         res=false;
    }
    Je suppose que sa vient de là car quand je met ces lignes en commentaires, le reste de ma fonction marche nickel, tandis que sinon elle ne marche plus ...

    Donc si quelqu'un pouvait m'éclaircir au niveau de cette expression ...

  2. #2
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg=new RegExp("^[0-9]{1,3}$|^[0-9].[0-9]$");
    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 !

  3. #3
    Membre éclairé Avatar de frog43
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Bonjour,
    merci de ta réponse, j'ai changé ma ligne mais le résultat est toujours le même ...

    Je te montre tout le code si sa peut t'aider ...

    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
    25
    26
     
    <script language="JavaScript">
    function textevide() {
    	var res=true;
    	var message="";
    	var reg=new RegExp("^[0-9]{1,3}$|^[0-9].[0-9]$");
    	var chaine=document.form1.NewPrix.value;
     
    	if ( document.form1.NewPrix.value == '' ) {
    		res = false;
    		message+="Le champ Basse saison n\'est pas rempli !!\n";
    	}
    	if ( document.form1.NewPrixHS.value == '' ) {
    		res = false;
    		message+="Le champ Haute saison n\'est pas rempli !!";
    	}
    	if (!reg.test(chaine)){
    		message+="le prix Basse saison doit être de la forme XX ou X.X !");
    		res=false;
    	}
    	if (res==false) {
    		alert(message);
    	}
    	return res;
    }
    </script>
    et l'appel de ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    <form method="post" name="form1" action="phpform.php" onsubmit="return textevide();">
    .
    .
    .
    .
    .
    </form>
    Voilà, donc ce qui se passe c'est que le formulaire est envoyé à la page phpform.php même si les conditions ne sont pas remplies ... Si je met le test de l'expression régulière, tout remarche ...

  4. #4
    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
    tu as juste une ) en trop

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    message+="le prix Basse saison doit être de la forme XX ou X.X !");
    ceci fonctionne :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    <script type="text/javascript">
    function foo(){
    var message="ok"
    chaine=document.getElementById('testt').value;
    var reg=new RegExp("^[0-9]{1,3}$|^[0-9].[0-9]$");
    var res=true;
    var message="";
    if (!reg.test(chaine)){
    		message="le prix Basse saison doit être de la forme XX ou X.X !";
    		res=false;
    	}
    if (res==false) {
    		alert(message);
    		}
    	alert(res)
    	return res;
    }
    </script>
     
     
     
    </script>
     
     
     
    </head>
     
    <body>
    <input type='text' value="" id='testt'/>
    <input type='button' onclick="foo()" value="" />
     
    </body>
    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 !

  5. #5
    Membre éclairé Avatar de frog43
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Merci !
    Tu es mon sauveur !
    Je me sens bête d'avoir loupé cette petite parenthèse mais bon ...
    Je te paierais bien un coup pour te remercier ! lol
    Tu me sort une belle épine du pied !

    Merci encore et bonne continuation !

  6. #6
    Membre éclairé Avatar de frog43
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Euh ...
    Je me suis aperçu d'une petite chose, pour bien faire il faudrait que le champs soit de la forme :
    1/ 1à3 chiffres
    2/ ou bien de 1à3 chiffres, un point, 1à2 chiffres (dans cette ordre)

    Je n'arrive pas à faire l'expression régulière, si quelqu'un peut m'aider ...

  7. #7
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^[0-9]{1,3}$|^[0-9]{1,3}.[0-9]{1,2}$

  8. #8
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Accessoirement pour tester les expressions régulières (rationnelles plutôt) : http://jacques-guizol.developpez.com...TestExReg.html Je m'en sers très souvent.
    et le cours associé http://jacques-guizol.developpez.com...Exp/RegExp.php

  9. #9
    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
    sinon sous firefox il y a une extension regExp tester ...
    pas top mais mieux que rien ...
    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 !

  10. #10
    Membre éclairé Avatar de frog43
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Je vous remercie pour votre réponse, la vérification du point ne marche pas, je peut mettre une virgule sans problème, hors je ne veut pas que cela soit possible ...

    voici mon script :

    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
    25
    26
    27
    28
    29
    30
    31
     
    function textevide() {
    	var res=true;
    	var message="";
    	var reg=new RegExp("^[0-9]{1,3}$|^[0-9]{1,3}.[0-9]{1,2}$");
    	var chaine=document.form1.NewPrix.value;
    	var chaine2=document.form1.NewPrixHS.value;
     
    	if ( document.form1.NewPrix.value == '' ) {
    		res = false;
    		message+="Le champ Basse saison n\'est pas rempli !!\n";
    	}else{
    		if (!reg.test(chaine)){
    			res=false;
    			message+="Le prix Basse saison n'est pas valide : pas de lettre ou de symbole, seulement un point et pas plus de 2 chiffres après le point !\n";
    		}
    	}
    	if ( document.form1.NewPrixHS.value == '' ) {
    		res = false;
    		message+="Le champ Haute saison n\'est pas rempli !!\n";
    	}else{
    		if (!reg.test(chaine2)){
    			res=false;
    			message+="Le prix Haute saison n'est pas valide : pas de lettre ou de symbole, seulement un point !";
    		}
    	}
    	if (res==false) {
    		alert(message);
    	}
    	return res;
    }
    Si vous arrivez à m'aider ... Pendant ce temps je me penche sur le lien de franculo_caoulene ...

  11. #11
    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
    faut echapper le point !!
    \.
    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 !

  12. #12
    Membre éclairé Avatar de frog43
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    J'ai essayé, sa ne marche pas non plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var reg=new RegExp("^[0-9]{1,3}$|^[0-9]{1,3}\.[0-9]{1,2}$");

  13. #13
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg=new RegExp("^[0-9]{1,3}$|^[0-9]{1,3}[\.]{1}[0-9]{1,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 !

  14. #14
    Membre éclairé Avatar de frog43
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut

    Tu es carrément le dieu des grenouille ... lol
    Merci pour tout, sa marche maintenant ...

    Merci aussi à ceux qui ont participer à cette discussion.

    Et bonne continuation à tous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 21/01/2010, 18h35
  2. [PEAR][HTML_QuickForm] Création de filtre avec expression régulière
    Par audran12 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/06/2007, 11h31
  3. Problème de création d'expression régulière
    Par Ithomir dans le forum Langage
    Réponses: 6
    Dernier message: 07/09/2006, 15h55

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