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 :

Le test plante à chaque fois [RegExp]


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut Le test plante à chaque fois
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var exp = new RegExp("/^\d{6}[a-zA-Z]{2}\d{1,2}$/i");
    		if(!exp.test(dmu))
    		{
    			alert("pas ok");
    		}
    		else
    		{
    			alert("ok");
    		}
    J'utilise ce code pour vérifier le format d'une chaine de caractère reçue en paramètre d'une fonction javascript.

    Le seul format accepté devrait être celui-ci :

    840309MM01
    C'est à dire 6 chiffres en début de chaîne, suivi de deux lettres et de deux chifres.

    L'alerte m'indique à chaque fois que ce n'est pas OK, que le format de la chaîne n'est pas respecté même quand je mets le bon format.

    Avez-vous une idée ?

    Je vous en remercie d'avance.

    beegees

  2. #2
    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
    bonjour,

    tu as mélangé les deux syntaxes de déclaration d'une regexp. Essaye comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var exp = new RegExp("^\d{6}[a-zA-Z]{2}\d{1,2}$","i");
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var exp = /^\d{6}[a-zA-Z]{2}\d{1,2}$/i;

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Salut Auteur,

    J'ai appliqué le changement que tu m'as indiqué, mais le test reste négatif.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var exp = new RegExp("^\d{6}[a-zA-Z]{2}\d{1,2}$","i");
    	if(!exp.test(dmu))
    	{
    		alert("pas ok");
    	}
    	else
    	{
    		alert("ok");
    	}
    Edit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var exp = new RegExp("^\d{6}[a-zA-Z]{2}\d{1,2}$");
    indique que 840309MM01 est VRAI.

    via ce site :

    http://www.annuaire-info.com/outil-r...ion-reguliere/

    Dans mon code, ça ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var exp = new RegExp("^\d{6}[a-zA-Z]{2}\d{1,2}$");
    C'est toujours faux.

    Encore merci pour ton aide.

    beegees

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    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 684
    Par défaut
    bizarre, ça ne peut que fonctionner...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(/^\d{6}[a-z]{2}\d{2}$/i.test(chaine))

  5. #5
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par javatwister Voir le message
    bizarre, ça ne peut que fonctionner...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(/^\d{6}[a-z]{2}\d{2}$/i.test(chaine))
    Salut,

    Merci pour ton aide.

    L'alerte me met "True", ça fonctionne donc

    Je devrais pouvoir me débrouiller maintenant.

    Merci pour ton aide.

    beegees

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    c'est normal que ça me rappelle quelque chose ???
    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 !

  7. #7
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Citation Envoyé par Auteur Voir le message
    Question : est-ce ton expression régulière se trouve dans une boucle car la méthode test a un bug :
    http://www.developpez.net/forums/d49...p/#post2947095
    It’s not a bug, it’s a feature! Et ce « bug » ne se produit qu'avec les regex qui ont l'option g. Sinon, le lastIndex reste à 0.

    Citation Envoyé par Auteur Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var exp = new RegExp("^\d{6}[a-zA-Z]{2}\d{1,2}$","i");
    Le problème quand on déclare les regex avec des chaînes…
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var exp = new RegExp("^\\d{6}[a-zA-Z]{2}\\d{1,2}$","i");
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  8. #8
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    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 684
    Par défaut
    non non... le {1,2} n'a rien à faire ici...

  9. #9
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Ah oui tiens, j'ai pas repris la bonne… Mais l'important c'est de bien échapper les backslashes.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

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

Discussions similaires

  1. le makefile refait tout à chaque fois?!
    Par jula dans le forum Systèmes de compilation
    Réponses: 2
    Dernier message: 25/04/2006, 17h08
  2. [Cookies] L'ID de session change à chaque fois ! :-(
    Par seb92500 dans le forum Langage
    Réponses: 3
    Dernier message: 20/04/2006, 12h38
  3. [C#]Authentification qui échoue : a chaque fois "Login inco
    Par The_revival dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/04/2006, 22h36
  4. [vb.net][dataView] test sur chaque lignes
    Par arnolem dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/02/2006, 10h52
  5. ShellExecuteEx ne s'execute pas à chaque fois??
    Par Gothico dans le forum MFC
    Réponses: 11
    Dernier message: 01/03/2005, 22h02

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