Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
44
rated 0 times [  50] [ 6]  / answers: 1 / hits: 22467  / 10 Years ago, mon, june 23, 2014, 12:00:00

I am trying to validate a date in format MM/DD/YYYY HH:MM:SS AM/PM in javascript. I am unable to find any good answer tried other results but did not work. This issue has been asked for asp.net but not with javascript in the following question:



Regular expression for date time format "MM/DD/YY HH:mm:ss AM/PM" in asp.net regular expression validator



but has not helped me.
Example dates that I need to check is
05/13/2012 12:00:00 AM



I am validating the data cells in the csv file. These cells have some dates in the above format as well. I am checking the labels to these cells. like DATE, STRING etc. I am new thus dont know how to create them myself.


More From » regex

 Answers
5

Date validation with regular expressions in JavaScript.



The expressions below validate any date from 01-01-1900 00:00:00 AM.



Date format: mm[/.-]dd[/.-]yyyy hh:mm:ss am|pm



var r = /^(((0[13578]|1[02])[/.-](0[1-9]|[12]d|3[01])[/.-]((19|[2-9]d)d{2})s(0[0-9]|1[0-2]):(0[0-9]|[1-59]d):(0[0-9]|[1-59]d)s(AM|am|PM|pm))|((0[13456789]|1[012])[/.-](0[1-9]|[12]d|30)[/.-]((19|[2-9]d)d{2})s(0[0-9]|1[0-2]):(0[0-9]|[1-59]d):(0[0-9]|[1-59]d)s(AM|am|PM|pm))|((02)[/.-](0[1-9]|1d|2[0-8])[/.-]((19|[2-9]d)d{2})s(0[0-9]|1[0-2]):(0[0-9]|[1-59]d):(0[0-9]|[1-59]d)s(AM|am|PM|pm))|((02)[/.-](29)[/.-]((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))s(0[0-9]|1[0-2]):(0[0-9]|[1-59]d):(0[0-9]|[1-59]d)s(AM|am|PM|pm)))$/g;

r.test('06/12/2014 12:45:56 AM'); // true
r.test('11-12-1965 06:04:34 PM'); // true
r.test('11/31/2015 11:40:00 AM'); // false
r.test('12-31-1945 01:38:09 PM'); // true
r.test('02/29/2012 09:04:10 AM'); // true [leap year]
r.test('02/29/2013 09:04:10 AM'); // false
r.test('06.12.2014 13:04:10 AM'); // false


Date format: dd[/.-]mm[/.-]yyyy hh:mm:ss am|pm



var r = /^(((0[1-9]|[12]d|3[01])[/.-](0[13578]|1[02])[/.-]((19|[2-9]d)d{2})s(0[0-9]|1[0-2]):(0[0-9]|[1-59]d):(0[0-9]|[1-59]d)s(AM|am|PM|pm))|((0[1-9]|[12]d|30)[/.-](0[13456789]|1[012])[/.-]((19|[2-9]d)d{2})s(0[0-9]|1[0-2]):(0[0-9]|[1-59]d):(0[0-9]|[1-59]d)s(AM|am|PM|pm))|((0[1-9]|1d|2[0-8])[/.-](02)[/.-]((19|[2-9]d)d{2})s(0[0-9]|1[0-2]):(0[0-9]|[1-59]d):(0[0-9]|[1-59]d)s(AM|am|PM|pm))|((29)[/.-](02)[/.-]((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))s(0[0-9]|1[0-2]):(0[0-9]|[1-59]d):(0[0-9]|[1-59]d)s(AM|am|PM|pm)))$/g;

r.test('12/06/2014 12:45:56 AM'); // true
r.test('12-11-1965 06:04:34 PM'); // true
r.test('31/11/2015 11:40:00 AM'); // false
r.test('21-12-1945 01:38:09 PM'); // true
r.test('29/02/2012 09:04:10 AM'); // true [leap year]
r.test('29/02/2013 09:04:10 AM'); // false
r.test('12.06.2014 13:04:10 AM'); // false


Date format: dd[/.-]mm[/.-]yyyy hh:mm:ss



var r = /^(((0[1-9]|[12]d|3[01])[/.-](0[13578]|1[02])[/.-]((19|[2-9]d)d{2})s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))|((0[1-9]|[12]d|30)[/.-](0[13456789]|1[012])[/.-]((19|[2-9]d)d{2})s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))|((0[1-9]|1d|2[0-8])[/.-](02)[/.-]((19|[2-9]d)d{2})s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))|((29)[/.-](02)[/.-]((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])))$/g;

r.test('24/06/2014 15:08:05'); // true
r.test('29/02/2016 23:19:20'); // true [leap year]
r.test('29/02/2015 23:19:20'); // false
r.test('31/11/2010 10:00:02'); // false


Date format: yyyy[/.-]mm[/.-]dd hh:mm:ss



var r = /^((((19|[2-9]d)d{2})[/.-](0[13578]|1[02])[/.-](0[1-9]|[12]d|3[01])s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))|(((19|[2-9]d)d{2})[/.-](0[13456789]|1[012])[/.-](0[1-9]|[12]d|30)s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))|(((19|[2-9]d)d{2})[/.-](02)[/.-](0[1-9]|1d|2[0-8])s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))|(((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))[/.-](02)[/.-](29)s(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])))$/g;

r.test('2014-06-24 15:49:05'); // true
r.test('2016-02-29 23:19:20'); // true [leap year]
r.test('2015/02/29 23:19:20'); // false
r.test('2010.11.31 10:00:02'); // false
r.test('1956.10.12 24:10:02'); // false

[#70464] Friday, June 20, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
analiseg

Total Points: 460
Total Questions: 96
Total Answers: 90

Location: Ecuador
Member since Thu, Jun 4, 2020
4 Years ago
;