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

Langage PHP Discussion :

Regex pour mot de passe [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Points : 171
    Points
    171
    Par défaut Regex pour mot de passe
    Bonjour,

    Je cherche la regex pour imposer un mot de passe de minimum 7 caractères, avec chiffres et lettres.

    Pour cela j'ai réussi avec '/[a-zA-Z]|[0-9]{7,}/'

    mais je voudrais imposer au moins 1 chiffre et au moins 1 lettre par exemple, et là je bloque...

    Merci de votre aide.

    Vince

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Points : 171
    Points
    171
    Par défaut
    j'ai finalement découpé comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!\preg_match("/[a-zA-Z]/", $data['pwd']) || !\preg_match("/[0-9]/", $data['pwd']) || strlen($data['pwd']) < 7){

  3. #3
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Pour faire ça je te propose 2 patterns, soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '~\A(?=.{7})(?>[0-9]+|[a-z]+)[[:alnum:]]+\z~i';
    soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '~\A(?=[a-z]++[0-9]|[0-9]++[a-z])[[:alnum:]]{7,}\z~i';
    - avantage de la première: elle échoue vite s'il y a moins de 7 caractères.
    - avantage de la deuxième: elle échoue vite s'il n'y a pas un chiffre suivit d'une lettre ou le contraire dans les premiers caractères.

    Entre les deux mon cœur balance plutôt pour la première, mais à peu de chose près, elles se valent.

    \A et \z sont les ancres de début et de fin de chaîne.
    (?=...) est un test avant (lookahead) et signifie suivi de.
    [:alnum:] est une classe de caractère qui contient tous les lettres et les chiffres ascii.

    (?>...) est un groupe atomique, c'est comme un groupe non-capturant sauf qu'une fois la parenthèse fermée, le moteur de regex ne peut plus reculer dans les caractères du groupe pour tester d'autres solutions.
    ++ est un quantificateur possessif, même chose que précédemment.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

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

Discussions similaires

  1. Regex pour mot de passe
    Par Pynouz dans le forum C#
    Réponses: 6
    Dernier message: 24/08/2011, 10h52
  2. connection pour mot de passe
    Par itak33 dans le forum WebDev
    Réponses: 1
    Dernier message: 08/06/2007, 15h36
  3. [MySQL] problème envoi mail pour mot de passe
    Par bonsam dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/11/2006, 20h57
  4. utilisation Edit pour mot de passe
    Par devlopassion dans le forum C++Builder
    Réponses: 5
    Dernier message: 11/10/2006, 10h37

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