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 : besoin d'aide


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 99
    Points : 64
    Points
    64
    Par défaut Expression régulière : besoin d'aide
    Bonjour, je souhaite testé qu'une expression régulière contiennent du texte, puis tester qu'elle contient au moins 1 chiffre et au max 3, et qu'elle contient au moins 1 caratère spécial. Chacun de ces tests devront être effectué 1 par 1. Je bloque déjà sur les chiffres, voici mon expression régulière :
    En théorie, je devris tester qu'il y a au moins 1 chiffre de 0 à 9 et au max 2. Ben si j'en mets 3, ca marche aussi. Si quelqu'un pourrait m'expliquer pourquoi. Je vous remercie.
    http://www.iso-country-code.com Liste des pays traduits dans pleins de langues

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    normal car ton expression dit qui doit contenir 1 ou 2 chiffre consécutif

    donc 12 c'est ok mais 123 aussi car 123 contient 12 et 23 qui correspondent bien à l'expression.

    Ceci signifie qui contient 1 ou 2 chiffre uniquement (^ => commence par. et $ => fini par)

    A+jyt

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 99
    Points : 64
    Points
    64
    Par défaut
    Oui mais le problème, c'est que je ne veux pas qu'elle contiennent que des chiffres mais seulement 2 chiffres ex :

    sdf15!!d? -> ok
    1sdf2!&s2 -> pas ok : plus de 2 chiffres

    à la rigueur pour les chiffres je peux utiliser une autre technique qui consiste à compter le nombre de valeur numérique dans le mot.
    Mais pour les caratères spéciaux, il faut une autre solution et là je bloque. Je pourrais peut-être mettre tous les caractères spéciaux que j'accepte dans un tableau et vérifier pour chaque caratère s'il est présent dans le tableau. La chaine faisant 15 caractères maximum, je pense que ca peut aller très vite.

    Mais ca me parait pas bien... optimisé tout ça. Si quelqu'un à une idée + rapide (sans pour autant m'apporter la solution), je suis preneur.
    Merci
    http://www.iso-country-code.com Liste des pays traduits dans pleins de langues

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    "caractère spécial", c'est plutôt vague!

    veux-tu dire, caractères non alphanumériques? tu inclus les caractères accentués? les espaces? les guillemets?...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 99
    Points : 64
    Points
    64
    Par défaut
    voici la liste de ce que je voudrais autoriser :
    &"'(-_)=#{|\]}!:;?/§%*

    je pense mettre tout ça dans un tableau.
    http://www.iso-country-code.com Liste des pays traduits dans pleins de langues

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    tu n'as guère d'autre solution;

  7. #7
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    il te faut regarder la doc des regexp

    en clair il te faut dire e qui précède test chiffre et ceux qui suite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^[^0-9][0-9]{1,2}[^0-9]$/
    tout sauf des chiffres suivit de 1 ou 2 chiffre suivit de tout sauf des chiffres

    pour ce qui est des caractères &"'(-_)=#{|\]}!:;?/§%* il te faut penser aux \
    pour une suite quelconque de . * + de longueur au moins 1

    A+JYT

  8. #8
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    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
    22
    23
    24
    25
    26
    27
    28
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
     
     
    <script type="text/javascript">
     
    function check(val){
    var num=val.match(/\d/g);
    var spec=val.match(/['"&(_)=#{|\]}!:;?/§%*-]/g);
     
    var mess= spec && num && num.length<3 ? 'Ok!' : 'Try again!';
    alert(mess);
     
    }
     
    </script>
     
    </head> 
    <body>
     
    <p>
    <label for="t">Votre mot de passe doit contenir au moins un caractère spécial et entre 1 et 2 chiffres</label>
    <input type="text" size="15" maxlength="15" id="t" onchange="check(this.value)" /> 
    </p>
     
    </body> 
    </html>

Discussions similaires

  1. [VBScript | Expression Regulière] Besoin d'aide
    Par narutobaka dans le forum VBScript
    Réponses: 1
    Dernier message: 10/10/2012, 15h16
  2. Expressions régulières : besoin d'aide
    Par Yannick_from_31 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 18/09/2007, 15h39
  3. [expression régulière] besoin d'aide.
    Par Fabouney dans le forum Langage
    Réponses: 1
    Dernier message: 28/02/2006, 11h21
  4. Test d'expression régulière, besoin d'aide
    Par RedShift2 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/02/2005, 16h04
  5. Expression régulière (besoin d'aide)
    Par bigtoof dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/10/2004, 15h18

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