Rech. javascript de masque de saisie d'un champ dd/mm/yyyy hh:mi ?

Rech. javascript de masque de saisie d'un champ dd/mm/yyyy hh:mi ? - HTML/CSS - Programmation

Marsh Posté le 17-08-2004 à 13:55:54    

Bonjour, :hello:  
je recherche un javascript pour tester ou faire un masque de saisie d'une zone de saisie de date au format DD/MM/YYYY HH:MI , afin de vérifier que les dates et heures passées sont au bon format ... :D  
 
merci d'avance pour votre aide :jap:


Message édité par carcass le 17-08-2004 à 13:56:19

---------------
Wake up and smell ... the Carcass
Reply

Marsh Posté le 17-08-2004 à 13:55:54   

Reply

Marsh Posté le 17-08-2004 à 14:16:19    

re = new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{4} [0-9]{2}:[0-9]{2}$" )
if (!forms['nom_formulaire'].elements['champ_a_tester'].value.match(re)) {
 alert ('Pâ bien !');
 return false;
}
 
c un peu bourrin et ca laisse passer les trucs du genre :
99/26/0002 99:65
à vérifier derrière donc...

Reply

Marsh Posté le 17-08-2004 à 14:23:13    

Fais une vérif serveur quand même. ;)

Reply

Marsh Posté le 17-08-2004 à 14:53:15    

ok merci .. je vais tester :-)))


---------------
Wake up and smell ... the Carcass
Reply

Marsh Posté le 18-08-2004 à 15:33:54    

donc j'ai changé un peu ton code (qui marche bien) ...
/*Verification des 2 champs date + heure*/    
function VerifierDateHeure(NomChamp) {
re = new RegExp("^[0-3]{1}[0-9]{1}/[0-1]{1}[0-9]{1}/[0-9]{4} [0-2]{1}[0-9]{1}:[0-5]{1}[0-9]{1}$" )
if (!document.Recherche(NomChamp.name).value.match(re))
  alert ("La date n'est pas au format dd/mm/yyyy hh:mi." );}  
</script>
 
mais :-)
en fait , j'aimerais limité le champ à 1-31 pour le jour , 1-12 pour le mois, ect... c possible avec ta methode ???


---------------
Wake up and smell ... the Carcass
Reply

Marsh Posté le 19-08-2004 à 12:14:05    

à moins d'énumérer explicitement toutes les valeurs possibles (rhhmmm) pour chaque morceau (00 ou 01 ou ... ou 31 pour le jour, pareil pour les mois...) non.
 
Les expressions rationnelles c'est pour la vérification lexicale, une fois que tu as ton mot, si tu veux vérifier sa cohérence (vérification syntaxique) faut y aller à la main :
tu le découpes en morceaux et tu vérifie que ca colle...

Reply

Marsh Posté le 19-08-2004 à 12:57:10    

gubug a écrit :

à moins d'énumérer explicitement toutes les valeurs possibles (rhhmmm) pour chaque morceau (00 ou 01 ou ... ou 31 pour le jour, pareil pour les mois...) non.
 
Les expressions rationnelles c'est pour la vérification lexicale, une fois que tu as ton mot, si tu veux vérifier sa cohérence (vérification syntaxique) faut y aller à la main :
tu le découpes en morceaux et tu vérifie que ca colle...


j'avais hésité à faire des lisbox (mais c trop moche et pas agréable)..
 
j'ai donc, comme expliqué ci-dessus, coupé en parties et verifier la coherence de chaque partie ...
 
mais merci qd mm  ;)


---------------
Wake up and smell ... the Carcass
Reply

Marsh Posté le 19-08-2004 à 13:32:43    

ce que je voulais dire c'est que une fois que tu as ta chaine qui colle au 'dd/mm/yyyy hh:mi', tu prends les 2 1er caractères dd et tu vérifie que c'est pas 39, les 2 suivants que c'est pas 19 etc.
c'est bourrin mais l'objet Date de javascript est vraiment limité. J'ai jamais trouvé mais qqn a déjà dû se taper la création d'un objet qui permettrait :

Code :
  1. var ma_date = new Date ('10/05/2004 11:36');
  2. if (!ma_date.isValid()) {...


sinon, ben c'est à toi de le faire :)

Reply

Marsh Posté le 01-09-2004 à 17:33:50    

Citation :

mais :-)
en fait , j'aimerais limité le champ à 1-31 pour le jour , 1-12 pour le mois, ect... c possible avec ta methode ???


 

Citation :

à moins d'énumérer explicitement toutes les valeurs possibles (rhhmmm) pour chaque morceau (00 ou 01 ou ... ou 31 pour le jour, pareil pour les mois...) non.


 
Il y a un petit peu plus simple quand même avec les regexps :
 
/(0[1-9]|[1-2][0-9]|3[0-1])/
 
Voilà pour les jours de 0 à 31 par exemple.
 
/(0[1-9]|1[0-2])/
 
Voilà pour les mois
 
le pipe (|) est à considérer comme un OU
 
@+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed