function isValidDate(str) { if (!/^\d{4}\-\d\d?\-\d\d?/.test(str)) { return false; } var array = str.replace(/\-0/g, "-").split("-"); var year = parseInt(array[0]); var month = parseInt(array[1]) - 1; var day = parseInt(array[2]); var date = new Date(year, month, day); return (date.getFullYear() == year && date.getMonth() == month && date.getDate() == day); }
该函数判断str是否为yyyy-MM-dd格式的日期字符串,如果月或日是个位数,加0或不加0都有效,如2008-08-08或2008-8-8都有效。