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 :

Expressions régulieres en javascript


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Expressions régulieres en javascript
    Bonjour,

    je suis entrain d'installer un script sur mon site.

    J'aimerais rajouter une vérification en utilisant une expression régulière mais je ne sais pas l'adapter en javascript.
    Voici l'expression en PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?
    if(!preg_match('`^([a-z0-9]*)([a-z]+)$`',$login))
    {
    echo"Le login n'est pas correct";
    }
    else
    {
    echo"Le login est correct";
    }?>
    J'aimerais ajouter cette condition au code javascript suivant:
    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
    <script type="text/javascript">
    function writediv(texte)
         {
         document.getElementById('pseudobox').innerHTML = texte;
         }
     
    function verifPseudo(pseudo)
         {
         if(pseudo != '')
                   {
                   if(pseudo.length<2)
                             writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop court</span>');
                   else if(pseudo.length>30)
                             writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop long</span>');
                   else if(texte = file('verifpseudo.php?pseudo='+escape(pseudo)))
                             {
              if(texte == 1)
                   writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>');
              else if(texte == 2)
                   writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>');
              else
                   writediv(texte);
                             }
                   }
     
         }
    </script>
    Merci d'avance pour votre aide !

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    une petite recherche pour avoir un modèle ...
    http://www.developpez.net/forums/d67...blur-regex-ok/

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    j´ai également un pb d´exp régulière...
    je ne veux que 4 ou 5 chiffres :

    déclaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    format_cp5 = new RegExp("[0-9]{5}");
    format_cp4 = new RegExp("[0-9]{4}");
    utilisation:
    if(format_cp4.test(document.ChoixCP.cp.value))
    if(format_cp5.test(document.ChoixCP.cp.value))
    et Ça ne fonctionne pas

    J´ai également essayé ("\d{4})

    Merci de vos réponses
    Audrey

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    Merci mais en fait je veux séparer les deux, car je fais un traitement si la longueur est de 4, pas si la longueur est de 5.

    le problème est que ni l´une ni l´autre ne fonctionne.

    Merci d´avance

  6. #6
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    if ... oui mais il se passe quoi quand if ... ???

  7. #7
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Pourquoi ne pas simplement compter le nombre de caractères encodés (length) ?

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" name="essai" value="" onchange="alert(this.value.length);">

  8. #8
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    parceque cela ne prejuge pas du type des caractères il faudrait doubler avec un !isNaN et une verif de pas de separateur decimal ni symbole + ou - ...

    la regExp est tout a fait indiquée ...
    mais avec si peu de code il est difficile de savoir d'ou provient l'erreur ...

  9. #9
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Ouep. J'utilise un format sur mes champs qui m'interdit en fait d'entrer autre chose que ce que je lui précise. Une fonction créée par mes prédécesseurs. J'ai tendance à l'oublier. L'idée du length me semblait donc naturelle.

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    Je n´ai pas de message d´erreur, c´est juste que lorsque je tape nombre à 4 ou 5 chiffres ils ne sont pas captés dans les if.
    Je voulais donc savoir ce qui était faux dans mon expression régulière.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    format_cp5 = new RegExp("[0-9]{5}");
    format_cp4 = new RegExp("[0-9]{4}");
    utilisation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(format_cp4.test(document.ChoixCP.cp.value)) 
    else if(format_cp5.test(document.ChoixCP.cp.value))

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    D'où la question de Spaffy :
    Citation Envoyé par SpaceFrog Voir le message
    if ... oui mais il se passe quoi quand if ... ???
    Comment vois-tu que ça ne passe pas dans les if et quelle est la structure HTML de ton formulaire ?
    Car si on se limite à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(format_cp4.test(document.ChoixCP.cp.value)) 
    else if(format_cp5.test(document.ChoixCP.cp.value))
    qui du reste dans la syntaxe, est équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(format_cp4.test(document.ChoixCP.cp.value)){
        else if(format_cp5.test(document.ChoixCP.cp.value)){}
    }
    Je ne vois pas ce qui est censé se passer

  12. #12
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    j´ai bien sur enlever le code inutile à la compréhension de la question

  13. #13
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par audklie2 Voir le message
    j´ai bien sur enlever le code inutile à la compréhension de la question
    Ainsi et surtout le code UTILE à la compréhension de la question !

  14. #14
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ceci dit, une première erreur à priori (mais qui n'est pas la cause de ta demande ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    format_cp5 = new RegExp("[0-9]{5}");
    format_cp4 = new RegExp("[0-9]{4}");
    Tu vérifies qu'il y ait 4 ou 5 chiffres, mais pas qu'ils soient les seuls (par exemple "blabla12345reblarebla" passera). Tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    format_cp5 = /^\d{5}$/;
    format_cp4 = /^\d{4}$/;

  15. #15
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    merci mais là en l´occurence même 12345 ne passe pas, c´est ça mon pb

  16. #16
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    quelle est la structure HTML de ton formulaire ?

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    sans le reste du code difficle à dire juste avec in alert dans le if ça fonctionne ...

  18. #18
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type='text/javascript'>
    var invalue="2345"
    format_cp5 = /^\d{5}$/;
    format_cp4 = /^\d{4}$/;
     
     
    if(format_cp4.test(invalue)){alert ('longueur = 4')}
     
    if(format_cp5.test(invalue)){alert ('longueur = 5')}
     
    </script>

Discussions similaires

  1. Javascript - Expression Réguliere - pb sous Firefox
    Par sheriff64 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/01/2008, 22h21
  2. [Debutant] Expression réguliere
    Par grizzz dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 17/08/2007, 16h14
  3. expression réguliere
    Par htristra dans le forum C
    Réponses: 11
    Dernier message: 06/09/2005, 22h33
  4. expression réguliere en c++
    Par alambics dans le forum MFC
    Réponses: 9
    Dernier message: 10/03/2004, 20h19
  5. expression réguliere
    Par alambics dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/03/2004, 13h52

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