2个回答
展开全部
代码如下,可根据自己需求改一下
function checkdate(sdate){
var mdy,m,d,y;
var dayOfMonth=[31,28,31,30,31,30,31,31,30,31,30,31]; ;
if(mdy=sdate.match(/^([01]\d)-([0-3]\d)-(\d{4})$/)){
m=mdy[1];
d = mdy[2];
y = mdy[3];
if(m > 12){
alert("一年最多只有12个月");
return false;
}
if(isLeapYear(y)){
dayOfMonth[1]=29;
}
if(d > dayOfMonth[m-1]){
alert(y+"年"+m+"月最多只有"+dayOfMonth[m-1]+"天");
return false;
}
}else{
alert("日期格式不正确");
return false;
}
return true;
}
function isLeapYear(year){
if(year % 100 ===0){
if(year % 400 ===0){
return true;
}else{
return false;
}
}
if(year % 4 ===0){
return true;
}
return false;
}
这只是一个简单的实现,仅供参考
展开全部
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8" />
<title>JS</title>
<STYLE>
</STYLE>
<script type="text/javascript">
window.onload = function ()
{
var date = new Date, year = date.getFullYear ();
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
{
alert ('今年是闰年');
}
else
{
alert ('今年不是闰年');
}
var reg = /^(0[1-9]|1[0-2])\-(0[1-9]|[12]\d|3[01])\-[1-9]\d{3}$/;
var str = "12-01-2011";
alert (reg.test(str));
str = "13-01-2011";
alert (reg.test(str));
}
</script>
</head>
<body>
</body>
</html>
追问
当闰年的时候,二月只有28天,这个要怎么体现?还有1、3等等月份是31天,其它是30天这个约束要怎么体现。可以只用正则表达式表示吗?
追答
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8" />
<title>JS</title>
<STYLE>
</STYLE>
<script type="text/javascript">
var reg = /^(((0[13578]|1[02])\-(0[1-9]|[12]\d|3[01]))|((0[469]|11)\-(0[1-9]|[12]\d|3[0]))|(02\-(0[1-9]|2[0-8])))\-[1-9]\d{3}$/;
var str = "02-30-2011";
alert (reg.test (str));
</script>
</head>
<body>
</body>
</html>
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询