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 :

expression régulière syntaxe


Sujet :

JavaScript

  1. #1
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut expression régulière syntaxe
    Salut

    Je cherche à vérifier quand dans un champ mot de passe il n'y ait que des caractères alphanumérique et pas espace. J'ai donc dans une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	maReg = new RegExp("/\w+/","gi");
    	if (document.getElementById("nouveau").value.search(maReg) == -1) {
    		erreur = erreur + "- un nouveau mot de passe composé de chiffres et/ou de lettres sans espace\n";
    	}
    Mais ca ne fonctionne pas, ca me renvoit toujours un message d'erreur, je ne comprend pas.
    En cherchant sur google j'ai testé "\\w+" qui ne fonctionne pas plus
    J'ai beau regarder dans des cours, je comprend pas ce qui ne va pas avec mon expression.

    Quelqu'un peut m'aider ?

    Merci

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maReg = new RegExp("^[A-Za-z0-9]$","gi");

  3. #3
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut
    ca marche en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maReg = new RegExp("^[A-Za-z0-9]+$","gi");
    (il manquait un + à la tienne)

    ce que je capte pas c'est que d'après tous les cours que j'ai trouvé \w est censé correspondre à [A-Za-z0-9]

  4. #4
    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
    ou encore

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    function testMDP()
    {
     var exp = /^[0-9a-z]+$/gi;
     var valeur = document.getElementById("idMDP").value;
     
     if (exp.test(valeur))
     {
      alert("Ok...");
     }
     else
     {
      alert("- un nouveau mot de passe composé de chiffres et/ou de lettres sans espace -");
     }
    }

    ce que je capte pas c'est que d'après tous les cours que j'ai trouvé \w est censé correspondre à [A-Za-z0-9]
    plus précisément : A-Z ; a-z ; 0-9 et _

  5. #5
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Je pense qu'il n'aimait pas les slashes dans ton expression ..

    Le slash est utilisé comme délimiteur d'une expression régulière, comme dans le code de Auteur par exemple, sauf l'objet Regexp a déjà le délimiteur guillemet, donc tu mettais deux délimiteurs, donc il prenait tes slashes comme un caractère normal je pense. ^^

    @Auteur : http://jacques-guizol.developpez.com...p.php#CarClass ?

  6. #6
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut
    oui l'underscore me gêne pas.
    Mais d'après vous le fait que mon expression ne fonctionnait pas vient du fait que je n'avais pas mis ^ et $ ? (j'aime bien comprendre quand ca marche pas lol)

    EDIT :
    Citation Envoyé par Bisûnûrs
    Je pense qu'il n'aimait pas les slashes dans ton expression ..

    Le slash est utilisé comme délimiteur d'une expression régulière, comme dans le code de Auteur par exemple, sauf l'objet Regexp a déjà le délimiteur guillemet, donc tu mettais deux délimiteurs, donc il prenait tes slashes comme un caractère normal je pense. ^^
    J'y ai pensé et j'ai aussi testé sans mais ca ne fonctionnait pas plus

  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
    Citation Envoyé par Bisûnûrs
    \w Permet de capturer un caractère alphanumérique (y compris le caractère _). \w est ainsi équivalent à [a-zA-Z0-9_].
    Citation Envoyé par Oluha
    oui l'underscore me gêne pas.
    Mais d'après vous le fait que mon expression ne fonctionnait pas vient du fait que je n'avais pas mis ^ et $ ? (j'aime bien comprendre quand ca marche pas lol)
    tu testes la présence de ces caractères, mais pas exclusivement ces caractères. Si tu met ^et $ (début et fin de chaine), tu testes exclusivement la présence d'une chaine composée de la liste de caractères entre crochets.

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

Discussions similaires

  1. Syntaxe expression régulière egrep
    Par madmaxou dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 30/01/2009, 16h05
  2. règle de syntaxe - expression régulière
    Par visiwi dans le forum Langage
    Réponses: 6
    Dernier message: 20/06/2008, 15h45
  3. Réponses: 6
    Dernier message: 30/01/2008, 22h20
  4. [RegEx] Pb de syntaxe d'expression régulière
    Par renaudjuif dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2006, 20h52
  5. [RegEx] preg_replace et syntaxe des expressions régulières
    Par MmoulinexX dans le forum Langage
    Réponses: 4
    Dernier message: 04/06/2006, 23h57

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