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

Please support RegExLib Sponsors

Sponsors

Expressions by User

   Displaying page 1 of 1 pages; Items 1 to 1
Title Test Details SQL Server 2005 datetime validation
Expression
^((((((((jan(uary)?)|(mar(ch)?)|(may)|(july?)|(aug(ust)?)|(oct(ober)?)|(dec(ember)?)) ((3[01])|29))|(((apr(il)?)|(june?)|(sep(tember)?)|(nov(ember)?)) ((30)|(29)))|(((jan(uary)?)|(feb(ruary)?|(mar(ch)?)|(apr(il)?)|(may)|(june?)|(july?)|(aug(ust)?)|(sep(tember)?)|(oct(ober)?)|(nov(ember)?)|(dec(ember)?))) (2[0-8]|(1\d)|(0?[1-9])))),? )|(((((1[02])|(0?[13578]))[\.\-/]((3[01])|29))|(((11)|(0?[469]))[\.\-/]((30)|(29)))|(((1[0-2])|(0?[1-9]))[\.\-/](2[0-8]|(1\d)|(0?[1-9]))))[\.\-/])|(((((3[01])|29)[ \-\./]((jan(uary)?)|(mar(ch)?)|(may)|(july?)|(aug(ust)?)|(oct(ober)?)|(dec(ember)?)))|(((30)|(29))[ \.\-/]((apr(il)?)|(june?)|(sep(tember)?)|(nov(ember)?)))|((2[0-8]|(1\d)|(0?[1-9]))[ \.\-/]((jan(uary)?)|(feb(ruary)?|(mar(ch)?)|(apr(il)?)|(may)|(june?)|(july?)|(aug(ust)?)|(sep(tember)?)|(oct(ober)?)|(nov(ember)?)|(dec(ember)?)))))[ \-\./])|((((3[01])|29)((jan)|(mar)|(may)|(jul)|(aug)|(oct)|(dec)))|(((30)|(29))((apr)|(jun)|(sep)|(nov)))|((2[0-8]|(1\d)|(0[1-9]))((jan)|(feb)|(mar)|(apr)|(may)|(jun)|(jul)|(aug)|(sep)|(oct)|(nov)|(dec)))))(((175[3-9])|(17[6-9]\d)|(1[89]\d{2})|[2-9]\d{3})|\d{2}))|((((175[3-9])|(17[6-9]\d)|(1[89]\d{2})|[2-9]\d{3})|\d{2})((((1[02])|(0[13578]))((3[01])|29))|(((11)|(0[469]))((30)|(29)))|(((1[0-2])|(0[1-9]))(2[0-8]|(1\d)|(0[1-9])))))|(((29feb)|(29[ \.\-/]feb(ruary)?[ \.\-/])|(feb(ruary)? 29,? ?)|(0?2[\.\-/]29[\.\-/]))((((([2468][048])|([3579][26]))00)|(17((56)|([68][048])|([79][26])))|(((1[89])|([2-9]\d))(([2468][048])|([13579][26])|(0[48]))))|(([02468][048])|([13579][26]))))|(((((([2468][048])|([3579][26]))00)|(17((56)|([68][048])|([79][26])))|(((1[89])|([2-9]\d))(([2468][048])|([13579][26])|(0[48]))))|(([02468][048])|([13579][26])))(0229)))$
Description
This expression validates most legal dates for a SQL Server 2005 datetime format. It includes checking for leap years. (Written for a default U.S. install, not sure what results would be on versions for different regions) For double digit dates, 00 is considered to be the year 2000, so leap years will be valid. This will handle dates in the following formats yymmdd yyyymmdd m/d/yy mm/dd/yy m/d/yyyy mm/dd/yyyy m-d-yy mm-dd-yy m-d-yyyy mm-dd-yyyy m.d.yy mm.dd.yy m.d.yyyy mm.dd.yyyy mmmm dd yy mmmm dd yyyy mmmm dd, yy mmmm dd, yyyy mmmm d yy mmmm d yyyy mmmm d, yy mmmm d, yyyy d mmmm yy d mmmm yyyy dd mmmm yy dd mmmm yyyy d-mmmm-yy d-mmmm-yyyy dd-mmmm-yy dd-mmmm-yyyy d.mmmm.yy d.mmmm.yyyy dd.mmmm.yy dd.mmmm.yyyy d/mmmm/yy d/mmmm/yyyy dd/mmmm/yy dd/mmmm/yyyy mmm dd yy mmm dd yyyy mmm dd, yy mmm dd, yyyy mmm d yy mmm d yyyy mmm d, yy mmm d, yyyy dd mmm yy dd mmm yyyy d mmm yy d mmm yyyy ddmmmyy ddmmmyyyy dd-mmm-yy dd-mmm-yyyy d-mmm-yy d-mmm-yyyy dd.mmm.yy dd.mmm.yyyy d.mmm.yy d.mmm.yyyy dd/mmm/yy dd/mmm/yyyy d/mmm/yy d/mmm/yyyy Note: This will also handle mixing and matching of separator characters. for example: '1/1.2000', It would appear that this is valid in SQL Server 2005. This is written to work for ECMA script (include the ignore case parameter i), but should also work in .Net. I have tested this in firefox 2.0 (Blazing Fast) and IE 7.0 and both seem to work just fine. I have not tested it in .Net. It's pretty large and I have not attempted to optimize it. Feel free to optimize it any way you like.
Matches
20000229 | 000229 | 12/31/9999 | Dec 02, 99 | 30MAR1753 | Feb 29, 1756 | 1.1.2008
Non-Matches
21000229 | 990229 | 12/32/9999 | Xxx 02, 99 | 30MAR1752 | Feb 29, 1752 | 1.0.2008
Author Rating: The rating for this expression. Christopher Strolia-Davis
   Displaying page 1 of 1 pages; Items 1 to 1

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