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é .