RegExLib.com - The first Regular Expression Library on the Web!

Please support RegExLib Sponsors

Sponsors

Regular Expression Details

Title Test Find DateTime M/d/y hh:mm:ss
Expression
^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$
Description
DateTime Validator.
Matches
12/25/2003 | 08:03:31 | 02/29/2004 12 AM
Non-Matches
02/29/2003 1:34 PM | 13:23 PM | 24:00:00
Author Rating: The rating for this expression. Michael Ash
Source Michael Ash
Your Rating
Bad Good

Enter New Comment

Title
 
Name
 
Comment
 
Spammers suck - we apologize. Please enter the text shown below to enable your comment (not case sensitive - try as many times as you need to if the first ones are too hard):

Existing User Comments

Title: This is great, does exactly what I need
Name: Bob Bailey
Date: 4/6/2014 6:58:28 PM
Comment:
Very complicated expression that I guess I could have built myself along with many hours and much cursing. Thank you, Michael Ash, for saving me and my family from that. :) ...Bob


Title: commonprosperity.org
Name: www.shun-happymall.com
Date: 10/28/2012 11:19:48 PM
Comment:
http://www.commonprosperity.org/ Dear friends, do you want to have some different things? Whether you want to give your relatives and friends, take a few different exotic gifts? Whether you want to buy some cheap benefits of thing? So please, let us begin now! Click on our website (http://www.commonprosperity.org/) Will bring you different surprise,commonprosperity.org@hotmail.com ............ ./′ˉ/'...'/ˉ/` ........../'/.../..../...../ˉ\ ........('(...′...′....ˉ~ /') .........\.................'../ ..........\................../ ............\..............( ..............\.............\....


Title: Date validation
Name: om
Date: 7/17/2012 5:30:24 AM
Comment:
6/19/1740 test


Title: High definition<a href="http://www.beatsbydrdrer.com/"><strong>Cheap Beats By Dre</strong></a> are precision- engineered to reveal the full sound of
Name: Beats By Dre Sale
Date: 6/12/2012 3:09:02 AM
Comment:
High definition<a href="http://www.beatsbydrdrer.com/"><strong>Cheap Beats By Dre</strong></a> are precision- engineered to reveal the full sound of today's digital music.<a href="http://www.beatsbydrdrer.com/"><strong>Beats By Dre Sale</strong></a> of high quality deserve you to buy, high definition<a href="http://www.beatsbydrdrer.com/"><strong>Beats By Dre Studio</strong></a> with free shipping for you to shop in our Online store.


Title: http://www.kobe7playoff.com/
Name: kobe 7
Date: 5/18/2012 2:10:21 AM
Comment:
http://www.kobe7playoff.com/ http://www.kobe7playoff.com/nike-lebron-9ix-c-24.html http://www.kobe7playoff.com/dwyane-wade-shoes-c-15.html


Title: http://www.myairmax2012shoesoutlet.com/
Name: nike air max mens
Date: 5/17/2012 11:59:35 PM
Comment:
http://www.myairmax2012shoesoutlet.com/ http://www.myairmax2012shoesoutlet.com/nike-air-max-2012-c-1.html http://www.myairmax2012shoesoutlet.com/nike-air-max-2011-c-4.html


Title: http://www.roseshoesoutlet2012.com
Name: Adizero Rose 1.0
Date: 5/17/2012 11:49:18 PM
Comment:
http://www.roseshoesoutlet2012.com http://www.roseshoesoutlet2012.com/adidas-adizero-rose-10-c-2.html http://www.roseshoesoutlet2012.com/adizero-crazy-light-c-3.html


Title: Validation Failed
Name: José Dunstan
Date: 6/10/2010 10:21:41 AM
Comment:
I tried your regular expressions. But when querying by date 02/13/2010 or 26/02/2010 as the error states as


Title: Newbie RegEx User Says "Thank You!"
Name: Cortster
Date: 1/13/2010 2:14:52 PM
Comment:
Thanks, Michael, for taking the time to create this regEx.


Title: Problem to restrict special characters
Name: Sam
Date: 8/26/2009 5:34:22 AM
Comment:
I have used same regular expression for entering data in textbox. When i was run my application in IE it does not permit to add following special character 1. & 2. ( 3. % But when we run on Mozilla then I can enter these special characters in text box. How to restrict these characters in Mozilla. Please help me Its urgent.....


Title: Works Great
Name: Ali
Date: 3/16/2007 9:23:33 AM
Comment:
Nice work


Title: Many tanks
Name: Steve
Date: 7/8/2006 11:49:29 AM
Comment:
Michael, sincere thanks for your work.


Title: Many tanks
Name: Steve
Date: 7/8/2006 11:49:15 AM
Comment:
Michael, sincere thanks for your work.


Title: Re: field validation
Name: Michael Ash
Date: 5/10/2005 8:36:16 AM
Comment:
[-\d]* will match what you said you wanted. I don't know if that's what you meant. It will match nothing, hyphens, numbers or numbers with hyphens.


Title: field validation
Name: vinay
Date: 5/7/2005 2:05:56 AM
Comment:
I need the regex for a field validation i.e.. the text field should accept only no's and hyphen's in any format .


Title: Nice
Name: Anders Bohlin
Date: 3/16/2005 10:39:15 AM
Comment:
Works like clockwork.... and i know about these things since im from switzerland.... :D thanx


Title: Re:
Name: Praphulla
Date: 12/27/2004 4:02:18 AM
Comment:
Hi Michael, Yeah! I guessed the answer.But posted to clarify. Thank You for the regular expression code.Reduced many lines of scripting and Thank you for clarifying my doubt.


Title: PostDate
Name: Praphulla
Date: 12/26/2004 1:42:28 AM
Comment:
Hai Micheal, I want to use the validator for the DateOfBirth field.so i don't want to accept the date that is greater than the system date. How can i now proceed to check that


Title: Re: What about the post date
Name: Michael Ash
Date: 12/25/2004 12:13:39 AM
Comment:
I am sorry but I do not understand your comment. I don't know what you mean by post date. And what about the year 2010? Did you expect it not to accept? Why?


Title: What about the post date
Name: Praphulla
Date: 12/24/2004 8:08:19 AM
Comment:
I think its not handling the post date.If i choose year as 2010.Its accepting.


Title: Good
Name: XXX
Date: 12/14/2004 7:47:08 AM
Comment:
Very nice to see the regular expression.Thank You.Lot of code will be reduced


Title: Very Good
Name: Rui Veloso
Date: 10/5/2004 10:56:53 AM
Comment:
I wated a regukar expression just for validating time and this one is just very good for what i wated it for thanks Michael


Title: Thank you!
Name: Vlad
Date: 7/19/2004 1:02:39 AM
Comment:
Michael, Thank you!


Title: Re: need help splitting into 2 RE
Name: Michael Ash
Date: 7/19/2004 12:02:07 AM
Comment:
There are forced CRLF on this page. The regex should be one long string, no line breaks. http://regexlib.com/REDetails.aspx?regexp_id=113 is a mm/dd/yyyy date regex. It accept two digit years but removing the question marks before both \d{2} you can make it accept only 4 year dates


Title: need help splitting into 2 RE
Name: Vlad
Date: 7/18/2004 6:05:21 PM
Comment:
Michael, I tried using the date expression(with out time check) and it's not working. I think there's a missing parenthesis somewhere and I can't find it. Also, I made a typo in my previous post, I meant to say mm/dd/yyyy; could you flip it around? Thanks, Vlad


Title: Re: need help splitting into 2 RE
Name: Michael Ash
Date: 7/16/2004 9:31:29 PM
Comment:
Here is the time portion of this regex http://regexlib.com/REDetails.aspx?regexp_id=370 I've posted a dd/mm/yyyy regex here http://regexlib.com/REDetails.aspx?regexp_id=505 However this regex is geared toward .Net so it may not work with another language. Here is the regex with the time check removed (?n:^(?=\d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(?(.0?2)(?=.{3,4}(1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00))|0?[1-9]|1\d|2[0-8])(?<sep>[/.-])(?<month>0?[1-9]|1[012])\2(?<year>(1[6-9]|[2-9]\d)\d{2}))$) If you need a more language neutral version look here http://blogs.regexadvice.com/mash/archive/2004/06/17/1269.aspx


Title: need help splitting into 2 RE
Name: Vlad
Date: 7/16/2004 7:23:47 PM
Comment:
Hi, I need to have two separate validations. one for dd/mm/yyyy and the other fot hh:mm:ss I was trying to split it up this RE but with no luck. Can you help me out? Thanks, Vlad


Title: .NET Developer
Name: Mike
Date: 6/1/2004 11:10:27 AM
Comment:
Right on the money... Oh, wait, it's free. Thanks Michael Ash!


Title: re: Can i have code to validate dd/mm/yyyy
Name: Michael Ash
Date: 5/10/2004 9:51:54 AM
Comment:
Please refer to http://blogs.regexadvice.com/mash/posts/1021.aspx To require leading zeroes remove the question mark right after the zero. 0? -> 0


Title: Can i have code to validate dd/mm/yyyy
Name: Mufaddal
Date: 5/8/2004 4:39:03 AM
Comment:
DD/MM/YYYY the validator should not allow without prevailing zeros i mean , it should not validate 1/1/2000 . the correct format should be 01/01/2000


Title: Can i have code to validate dd/mm/yyyy
Name: Mufaddal
Date: 5/8/2004 4:13:58 AM
Comment:
Thanks in advance


Title: the Calendar
Name: Michael Ash
Date: 4/23/2004 2:08:32 AM
Comment:
refer to http://blogs.regexadvice.com/mash/archive/2004/04/23/1021.aspx


Title: re: developer
Name: Michael Ash
Date: 4/22/2004 6:05:01 PM
Comment:
Check your old calendars again. 2/29/2000 is a valid date and was a leap year. It was in all the papers. http://scienceworld.wolfram.com/astronomy/LeapYear.html


Title: developer
Name: joe
Date: 4/22/2004 5:52:47 PM
Comment:
Close! I rated it a 1/5 since date validation routines either work or they don't. There's no middle ground. The year 2000 is NOT a leap year and 2/29/2000 is NOT a valid date.


Title: very good
Name: dulker
Date: 3/25/2004 12:38:05 AM
Comment:
very gooooooood


Title: Thanks
Name: Jensen Bredal
Date: 3/8/2004 7:26:04 AM
Comment:
Many thanks.


Title: re: Great
Name: Michael Ash
Date: 3/4/2004 12:55:24 PM
Comment:
Sorry again. I'll get this right eventualy ^(?=\d)(?:(?:31(?!.(?:0?[2469]|11))|(?:30|29)(?!.0?2)|29(?=.0?2.(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(?:\x20|$))|(?:2[0-8]|1\d|0?[1-9]))([-./])(?:1[012]|0?[1-9])\1(?:1[6-9]|[2-9]\d)?\d\d)?(\x20?((0?[1-9]|1[012])(:[0-5]\d){0,2}(\x20[AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$ Needless to say you should test this thoroughly to see you don't get any false positives.


Title: re: Great
Name: Michael Ash
Date: 3/4/2004 12:29:56 PM
Comment:
Sorry, that last regex had a slight bug in it. Use this one for dd/mm/yy instead ^(?=\d)(?:(?:31(?!.(?:0?[469]|11))|(?:30|29)(?!.0?2)|29(?=.0?2.(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(?:\x20|$))|(?:2[0-8]|1\d|0?[1-9]))([-./])(?:1[012]|0?[1-9])\1(?:1[6-9]|[2-9]\d)?\d\d)?(\x20?((0?[1-9]|1[012])(:[0-5]\d){0,2}(\x20[AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$


Title: re: Great!
Name: Michael Ash
Date: 3/4/2004 12:05:21 PM
Comment:
Sorry Jensen but I'm not really an ASP.Net programmer. I only learned how to implement the asp:RegularExpressionValidator yesterday. I don't know what all the attributes do, so i don't really know what 'static' does in regard to the validator. I just modified some sample code I found. But assuming you can modify the regex the control uses on the fly then I think you had the right approach to to handling dd/mm/yy. Just use this regex for d/m/y ^(?=\d)(?:(?:31(?!.(?:0?[469]|11))|(?:30|29)(?!.0?2)|29(?=.0?2.(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:2[0-8]|1\d|0?[1-9]))([-./])(?:1[012]|0?[1-9])\1(?:1[6-9]|[2-9]\d)?\d\d)?(\x20?((0?[1-9]|1[012])(:[0-5]\d){0,2}(\x20[AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$


Title: Great!
Name: Jensen bredal
Date: 3/4/2004 4:28:45 AM
Comment:
Well that is what i did . Does display need to be "static" . I use dynamic. I also wnat my validator to work as well for german, danish or norwegian datetime. The problem is that the use dd-mm-yyyy or dd.mm.yyyy. My first approch was to detect the user language preference and then set the ValidateExpression property of my regular expresssion validator property to the appropriate expression. And i want all tis to happen on the client side. So far , the "en" (english) one is the only one that works with javascript. I'am rigth and how could i solve this. Many thanks Jensen Bredal


Title: Re: Implementation Code
Name: Michael Ash
Date: 3/3/2004 3:12:33 PM
Comment:
<asp:Label runat="server">Enter date or time</asp:Label><asp:TextBox id="Textbox1" runat="server"></asp:TextBox> <asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ControlToValidate="Textbox1" ValidationExpression="^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($| (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}( [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$" Display="Static" Font-Name="verdana" Font-Size="10pt"> Please enter a valid date </asp:RegularExpressionValidator>


Title: Implementation Code
Name: Jensen bredal
Date: 3/3/2004 5:14:55 AM
Comment:
could you provide a sample code for using this to validate a date in an asp.net Text box control? Thanks Jensen


Title: Format
Name: Michael Ash
Date: 9/1/2003 2:24:56 AM
Comment:
I mistakenly said originally that this used a dd/mm/yyyy format. It uses a mm/dd/yyyy. I apologize for the confusion. There are variations of my original Date validating RE on this library that check both d/m/y and y/m/d. I posted the time portion separately so it could be appended to those RE's


Title: dd/mm/yyyy
Name: Mars Yau
Date: 8/30/2003 12:16:42 AM
Comment:
It is not in format dd/mm/yyyy? how can i modify it to support this format?


Title: AM PM
Name: Sheik
Date: 8/27/2003 8:49:42 PM
Comment:
This modification allows AM and PM to be entered in either Upper Case or Lower Case ^(?:\s+)?(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($| (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(( [AP]M)|( [ap]m)))|([01]\d|2[0-3])(:[0-5]\d){1,2})?(?:\s+)?$


Title: Works Great
Name: Sheik
Date: 8/27/2003 8:37:56 PM
Comment:
Please try the following Regular Expression. ^(?:\s+)?(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($| (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}( [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?(?:\s+)?$ I have just added the string (?:\s+)? before and after the original expression to trim spaces before and after. It works great. Thanks


Title: Re: doesnt validate dates period!!
Name: Michael Ash
Date: 8/27/2003 1:39:57 PM
Comment:
Worked fine with I tested those dates. 8/27/2003 and 9/27/2003. Make sure you don't have any leading or trailing spaces (or LF/CR)


Title: correction:
Name: shane
Date: 8/27/2003 11:47:25 AM
Comment:
excuse me; 8/27/2003


Title: doesnt validate dates period!!
Name: shane
Date: 8/27/2003 11:46:33 AM
Comment:
this expression doesnt even work. wouldnt validate todays date: 9/27/2003


Title: Re: Does not validate leap years correctly
Name: Right
Date: 8/26/2003 12:20:12 PM
Comment:
nice


Title: Re: Does not validate leap years correctly
Name: Michael Ash
Date: 8/26/2003 10:58:16 AM
Comment:
This Re validate DATES, 01/01/2100 is a perfectly valid date. By validating leap years I specificly mean the it valid days in Feb. correctly. Feb 29th is only valid in leap years. If you test this RE with 02/29/2100 it will fail, as it should.


Title: Does not validate leap years correctly
Name: Guest
Date: 8/26/2003 10:41:08 AM
Comment:
This regex validates 01/01/2100...which it should not. Leap years only occur when the year is divisible by four, or when it is divisible by both 100 and 400.


Copyright © 2001-2014, RegexAdvice.com | ASP.NET Tutorials