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 sur durée


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Points : 120
    Points
    120
    Par défaut expression régulière sur durée
    bonjour,
    je cherche à valider une chaine saisie par l'utilisateur. Il s'agit d'une durée au format hh:mm:ss
    J'effectue un test avec l'expression suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/
    Cela fonctionne bien mais j'aimerai interdire la saisie d'une durée vide ( 00:00:00 ) . j'ai tenté de modifier l'expression mais sans trop de succès donc si quelqu'un de bien plus à l'aise que moi la dessus pouvait m'aider.
    Merci.

  2. #2
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /^([01][0-9]|2[0-3]):[0-5][0-9]:(0[1-9]|[1-5][0-9])$/
    Essai ça ...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Points : 120
    Points
    120
    Par défaut
    Avec cette expression une chaine de type "23:00:00" est refusée

  4. #4
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    ah merde ...

    bah le plus simple c'est surement de faire un double test :
    soit c'est 00:00:00 et c'est pas bon soit c'est pas ça et je teste avec l'expreg.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Points : 120
    Points
    120
    Par défaut
    Yep mais comment faire ce double test dans l'expression...parce que tous mes pattern d'expression sont dans un .js qui est ensuite utilisé dans toute l'appli et qui renvoit le message adéquate en cas d'erreur.

  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
    ajoute un split (ou match) comme contrainte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(chaine.match(/0/g).length<6){
       ...
    }

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Points : 120
    Points
    120
    Par défaut
    Oui mais c'est un peu le même problème je ne peux pas faire un cas particulier pour une expression dans la fonction.
    Tant pis je vais faire un test tout moche si value == "00:00:00".
    Merci de votre aide

  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
    de toute façon, les saisies "temporelles" ne sont bien vérifiés qu'avec un test d'existence de la date;

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

Discussions similaires

  1. [RegEx] Expression régulière sur lien hypertexte
    Par doubiremi dans le forum Langage
    Réponses: 6
    Dernier message: 21/09/2007, 14h48
  2. [RegEx] Expression régulière sur une date
    Par mattyeux dans le forum Langage
    Réponses: 1
    Dernier message: 21/09/2007, 11h16
  3. Expression régulière sur un ls
    Par goeland444 dans le forum Linux
    Réponses: 3
    Dernier message: 13/02/2007, 14h47
  4. expression régulière sur flux
    Par zais_ethael dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 19/09/2006, 23h38

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