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 :
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
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;
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é .
Partager