js 判断是否是时间

来源:百度知道 编辑:UC知道 时间:2024/05/27 12:42:04
function isDate(dateStr)
{
var datePat = /^(\d{4})(\-)(\d{1,2})(\-)(\d{1,2})$/;
var matchArray = dateStr.match(datePat);
if (matchArray == null) return false;
var month = matchArray[3];
var day = matchArray[5];
var year = matchArray[1];
if (month < 1 || month > 12) return false;
if (day < 1 || day > 31) return false;
if ((month==4 || month==6 || month==9 || month==11) && day==31) return false;
if (month == 2)
{
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) return false;
}
return true;
}

帮忙解释一下
var datePat = /^(\d{4})(\-)(\d{1,2})(\-)(\d{1,2})$/;

/^(\d{4})(\-)(\d{1,2})(\-)(\d{1,2})$/;

正则表达式,你可以找找这方面的资料
大概说说吧

/^:行首
$/:行尾
(\d{4}):正好匹配4个数字(应该是代表年)
(\-):中间有一杠
(\d{1,2}):1位到2位的数字(应该代表月)
(\-):还是一杠
(\d{1,2}):还是代表1到2位的数字(代表日期)

<script language="JavaScript"><!--
function validateDate(date) {
// NaN is never equal to itself.
if (Date.parse(date) != Date.parse(date))
document.write(date + ' - Invalid date<br>');
else
document.write(date + ' - Valid date<br>');
}

validateDate('hello world');
validateDate('29 January 1999');
validateDate('February 30 2000');
validateDate('Sat 8 2000 Jan');
//--></script>

日期