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 :

Parsing de Date, expression r�guli�re


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    28
    D�tails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 28
    Par d�faut Parsing de Date, expression r�guli�re
    Bonjour,
    j'ai un formulaire dans lequel il faut entrer une date, selon plusieurs formats, comme yyyy, MM/yyyy ou dd/MM/yyyy.

    Il se trouve que dans le cas de la date compl�te, j'ai un probl�me que je n'arrive pas � comprendre :
    lorsque j'�cris : '18/07/2008', �a marche bien.
    En revanche : '18/09/2008' ou '18/08/2006' ne marchent pas bien du tout.

    Pourquoi �a ne marche pas pour le mois d'aout et de septembre (quelle que soit l'ann�e et le jour) ?

    Voici mon code :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    function ajouterVideo(){	
    	if(!isDate($F('dateVideo'))&&($F('dateVideo')!='')){
    		alert(msgErrorBadDate);	
    		return;
    	}
    }
     
    function isDate(sDate){
    	var sSeparator = '/';
    	if(!sDate.match("(^(([0-2][0-9])|30|31)/((0[1-9])|(1[0-2]))/((19)|(20))[0-9]{2}$)|(^((19)|(20))[0-9]{2}$)|(^((0[1-9])|(1[0-2]))/((19)|(20))[0-9]{2}$)")){
    		return false;
    	}
    	if(sDate.match("(^(([0-2][0-9])|30|31)/((0[1-9])|(1[0-2]))/((19)|(20))[0-9]{2}$)")){
    		var arDate = sDate.split(sSeparator);
    		var iDay = parseInt(arDate[0]);
    		var iMonth = parseInt(arDate[1]);
    		var iYear = parseInt(arDate[2]);
    		alert(arDate);
    		alert(iDay);
    		alert(iMonth);
    		alert(iYear);
    		var arDayPerMonth = [31,(isLeapYear(iYear))?29:28,31,30,31,30,31,31,30,31,30,31];
     
    		if(!arDayPerMonth[iMonth-1]) return false;
    			return (iDay <= arDayPerMonth[iMonth-1] && iDay > 0);
    		}
    	else return true;
    }
     
    function isLeapYear(iYear){
    	return ((iYear%4==0 && iYear%100!=0) || iYear%400==0);
    }
    Le probl�me se situe selon moi au niveau de la fonction isDate(), lors du parsing de arDate : quand je rentre '18/09/2008', par exemple, alert(arDate) m'affiche bien '18,9,2008' mais alert(iMonth) m'affiche '0'.
    Pourquoi ?

    Merci

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut les joies et les peines du parseInt ^^
    Un grand classique
    (mais aucune disgr�ce pour toi on est tous tomb�s dedans une fois )

    ajoute un second param � tes parseInt, avec une valeur de 10, pour lui donner la bonne base de r�f�rence (sinon quand la chaine � parser commence par un "0" tu tombes sur de l'octal par d�faut... or en octal, les "8" et "9" >>> il en veut pas )

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    28
    D�tails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 28
    Par d�faut
    Raah ! Merci beaucoup !

    PS : non mais s�rieux, qui compte en octal ?

  4. #4
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    PS : non mais s�rieux, qui compte en octal ?
    Roger Bayte.
    Tr�s connu pour �a d'ailleurs

    Tu n'as jamais entendu quelqu'un dire : "Octal R. Bayte" ?
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Expressions r�guli�res date
    Par sorenson dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 15/03/2007, 16h11
  2. [DEBUTANT] Format de date - expression r�guli�re
    Par jpillonel dans le forum Langage
    R�ponses: 2
    Dernier message: 07/03/2007, 10h48
  3. parse JSON et expression r�guli�re
    Par Bruno2000 dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 30/06/2006, 16h39
  4. [RegEx] expression r�guli�re - date
    Par dark_demon dans le forum Langage
    R�ponses: 15
    Dernier message: 23/06/2006, 12h14
  5. [RegEx] expression r�guli�re et date
    Par r-zo dans le forum Langage
    R�ponses: 4
    Dernier message: 15/11/2005, 13h27

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