Javascript RegEx: valider date heure

Je ne suis pas très bon avec regex. Je suis frustré par une expression régulière.

Exemple:

J’ai l’heure de la date suivante: 05/16/2013 12:00 am

J’ai besoin d’un regex javascript qui respecte ce format: mm / jj / aaaa hh: mm [am / pm]

var dateReg = /^[0,1]?\d{1}\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))$/; if(!dateReg.test(inputVal)) { $(this).after('Invalid date format.'); } 

Mais ce code ne fonctionne que pour la date, pas avec l’heure. Merci de votre aide.

Votre extrait de code ne correspond qu’à la date, il n’y a pas d’atomes pour correspondre à l’heure. Votre expression rationnelle devrait être:

 dateReg = /^[0,1]?\d\/(([0-2]?\d)|([3][01]))\/((199\d)|([2-9]\d{3}))\s[0-2]?[0-9]:[0-5][0-9] (am|pm)?$/ 

Une expression rationnelle pour am / pm time peut être trouvée ici :

 /^(0?[1-9]|1[012])(:[0-5]\d) [APap][mM]$/ 

Vous ne devriez pas parsingr les dates et les heures vous-même. Trouvez une bonne bibliothèque pour le faire. d3.js prend en charge de manière précise l’parsing des dates et des heures en fonction des formats que vous spécifiez. Voir https://github.com/mbostock/d3/wiki/Time-Formatting .