JRS: In article <11**********************@f14g2000cwb.googlegroups .com>
, dated Tue, 12 Apr 2005 07:50:08, seen in news:comp.lang.javascript,
pa********@hotmail.com posted :
I have the following regular expression to validate a date-time field
in European or d/m/y h:m:s format.
^((((31\/(0?[13578]|1[02]))|((29|30)\/(0?[1,3-9]|1[0-2])))\/(1[6-9]|[2-9]\d)?\d{
2})|(29\/0?2\/(((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])\/((0?[1-9])|(1[0-2]))\/((1[6-9]|[2-9]\d
)?\d{2}))
(20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$
I wish to ammend it so that the time or h:m:s part is validated only if
supplied (i.e. I wish to make the time part optional). At present if a
time is not supplied the validation fails. I gather that the following
part of the above expression
(20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$
validates the time, however I don't know the syntax to make it
optional. I hope somebody can help.
You *could* omit the final $ from the RegExp without *much* loss; then
you can append " 00:00:00" to the date or date/time to make it a
date/time or date/time/time, with only the first time being used
There are much more sensible approaches - well, at least one - to
validating date and/or time. Read the newsgroup FAQ (Mon, Fri, or WWW
edition), and see below, and read <URL:
http://www.merlyn.demon.co.uk/js-
date4.htm>.
Of course, d/m/y is not really European; some use d-m-y, some d/m/y,
some d.m.y, some y-m-d.
If you can, however, use YYYY-MM-DD and hh:mm:ss, as per ISO 8601 -
note, any field numerically 0-9 needs a leading zero.
I suggest starting with split(" ") or maybe split(/[^0-9:-]+/) to
break date & time apart, check length to see if there should be a time,
and validate separately.
A significant part of the RegExp above is dealing with the 100 & 400
year Gregorian Rules. That seems unlikely to be needed at present,
since between 1900-03-01 and 2100-02-28 inclusive the Gregorian Calendar
gas the same dates as the Julian (13 days earlier); only the 4-year rule
is of current importance.
--
© John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4 ©
<URL:http://www.jibbering.com/faq/> JL/RC: FAQ of news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.