Someone asked me about Date Validation the other day. Here are two simple approaches for use in your CF apps.
Assume that the strDate variable contains your date. On the server-side, you may use IsDate(strDate). On the client side, !isNaN(new Date(strDate)). I don’t know for sure if the client-side code is the best way to do it. There are RE-based techniques, but these are the most concise.
CFML:
<cfoutput> <cfset strDate1 = "2001 Fazuary 1"/> <cfset strDate2 = "2001 Feb 1" /> #IsDate(strDate1)#&lt;br&gt; #isDate(strDate2)# &lt;/cfoutput&gt; &lt;!--- Outputs: NO YES ---&gt;
Client-side Javascript:
<script> // This creates a function to test the string. // What is this function doing? It takes the // strDate string and attempts to convert it into // a Date object using the Date constructor. // When the Date constructor cannot convert the // string, it returns NaN (not a number). // So, we wind up testing for NOT NaN using // !isNaN. Don't ask me why the Date constructor // returns NaN and not NaD (not a date)! =D function isDate(strDate) { return !isNaN(new Date(strDate)); } var strDate1 = &quot;2001 Fazuary 1&quot;, strDate2 = &quot;2001 Feb 1&quot;; alert( isDate(strDate1) + '\n' + isDate(strDate2) ); // // Brings up an alert window that says: // // false // true &lt;/script&gt;