<html> 用正则表达式对日期字符串进行验证: <pre> 说明: 1:日期格式为,如:2008/8/8 12或是2008/08/08 23都是正确的。 2:可以对0000~9999年中的任一天的日期进行合法性验证。 3:对于闰年时2月有29号此种情况也进行有效验证。 </pre> <form> <input type="text" name=regexp_content size="80" value="2000/2/29 01"> <input type="button" value="验证" onclick="alert(verify_date(this.form.regexp_content.value))"> </form> </html> <script language="javascript" type="text/javascript"> //验证日期的格式为****/**/** **,//已经考虑到了闰年的问题,如2001/2/29是不允许的。而2008/2/29则是可以的。 //入口参数:日期字符串; //出口参数:true|false function verify_date(date_str) { var myReg=new RegExp("^(?:(?:([0-9]{4}/(?:(?:0?[1,3-9]|1[0-2])/(?:29|30)|((?:0?[13578]|1[02])/31)))|([0-9]{4}/(?:0?[1-9]|1[0-2])/(?:0?[1-9]|1\\d|2[0-8]))|(((?:(\\d\\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))/0?2/29))))$"); return myReg.test(date_str); } </script>
yyyy-mm-dd:
^(?:(?:([0-9]{4}-(?:(?:0?[1,3-9]|1[0-2])-(?:29|30)|((?:0?[13578]|1[02])-31)))|([0-9]{4}-(?:0?[1-9]|1[0-2])-(?:0?[1-9]|1\\d|2[0-8]))|(((?:(\\d\\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))-0?2-29))))$
yyyy/mm/dd:
^(?:(?:([0-9]{4}/(?:(?:0?[1,3-9]|1[0-2])/(?:29|30)|((?:0?[13578]|1[02])/31)))|([0-9]{4}/(?:0?[1-9]|1[0-2])/(?:0?[1-9]|1\\d|2[0-8]))|(((?:(\\d\\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))/0?2/29))))$