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 :

Regex - Problème


Sujet :

JavaScript

  1. #1
    darkloy
    Invité(e)
    Par défaut Regex - Problème
    Bonjour à tous !

    J'ai un problème .

    J'ai un champ input dans lequel on tape une date au format :
    dd/mm/yyyy hh:mm:ss

    Je fais divers test avec l'événement onkeypress, et j'aimerais, avant de renvoyer true ou false pour que le carractère s'affiche ou pas, tester l'ensemble avec une expression regulière

    Voici ce que j'ai fait :

    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
     
    // On récupère la valeur de la touche en fonction de son code ASCII
    var touche = String.fromCharCode(key);
     
    // On génère le résultat si la fonction renvoie true, pour la tester avec une expression régulière
     
    var final = t.value + touche;
     
    // On crée  l'expression regulière (dd/mm/yyyy hh:mm:ss) 
    reg = /[0-3][0-9]\/[0-1][0-9]\/[1-2][0-9][0-9][0-9]\s[0-2][0-9]\:[0-5][0-9]\:[0-5][0-9]/;
     
    // Si ca ne remplie pas l'expression régulière
     
    if(!reg.test(final))
    return false;
    Ca marcherais, sauf qu'il faudrais que l'expression marche dès que l'utilisateur a commencé a taper la date, et non une fois qu'elle est totalement terminée

    Je m'explique :
    l'utilisateur veux rentrer '29/12/2008 14:25:23'

    il tape 2 (renvoie false)
    il tape 9 (renvoie false)
    il tape / (renvoie false)
    ...
    et ca renvoie true qu'a la fin

    je voudrais par exemple que ca renvoie false uniquement si il tape des caractères invalides

    il tape g (renvoie false)
    il tape 2 (renvoie true)

    Je pense pas etre très clair, et j'en suis désolé .

  2. #2
    Membre expérimenté Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    reg = /([0-3]([0-9](\/([0-1]([0-9](\/([1-2]([0-9]([0-9]([0-9](\s([0-2]([0-9](\:([0-5]([0-9](\:([0-5]([0-9])?)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?/;

  3. #3
    darkloy
    Invité(e)
    Par défaut
    Merci de ta réponse (et de m'avoir compris )!!

    Je teste ça desuite !!!

  4. #4
    darkloy
    Invité(e)
    Par défaut
    Ca me renvoie "true" tout le temps

    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
     
    // On récupère la valeur de la touche en fonction de son code ASCII
     
    var touche = String.fromCharCode(key);
     
    // On génère le résultat si la fonction renvoie true, pour la tester avec une expression régulière
     
    var final = t.value + touche;
     
    // Expression regulière 
    reg = /([0-3]([0-9](\/([0-1]([0-9](\/([1-2]([0-9]([0-9]([0-9](\s([0-2]([0-9](\:([0-5]([0-9](\:([0-5]([0-9])?)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?/;
     
     
    // Si ca ne remplie pas l'expression régulière on bloque
    	if(!reg.test(final))return false;
    mais c'est sûrement mal qui utilise mal la regex .Je vais manger et bien reflechir à tout ca!

    Merci !

Discussions similaires

  1. [c# REGEX]Problème avec une expression régulière
    Par mezzo_998 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 24/11/2007, 13h03
  2. REGEX problème avec les "
    Par storm_2000 dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 30/11/2006, 18h32
  3. [RegEx] regex : problème de motif
    Par poonoo dans le forum Langage
    Réponses: 12
    Dernier message: 25/09/2006, 13h02
  4. Réponses: 12
    Dernier message: 04/09/2006, 17h59
  5. [Regex] Problème de match...
    Par Hoegaarden dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 14/02/2006, 16h25

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