高分求判断日期格式的正则表达式。(up有分) 有严整日期格式的函数也行。谢谢。Javascript/vbscript 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的水平有限,正则表达式最多就是这样了,但是似乎无法判断大小月和闰年2月问题。/\d\d\d\d\/[0-1]\d\/[0-3]\d/恐怕还要自己写一个函数判断闰年和大小月。这个就很简单哦。我不写代码了。 http://expert.csdn.net/Expert/topic/655/655184.xml?temp=.797497 刚才错了,应该是:/\d{4}\/[0-1]\d\/[0-3]\d/ http://expert.csdn.net/Expert/topicview.asp?id=1088786 我写过一个可以根据指定的日期格式判别日期是否正确的:function getDateByMask(s,m){ if (s.length!=m.length){ return false; } try{ m=m.replace(/Y/g,"y").replace(/D/g,"d"); if (m.indexOf("yyyy")>-1) return new Date( s.substr(m.indexOf("yyyy"),4), s.substr(m.indexOf("MM"),2)-1, s.substr(m.indexOf("dd"),2) ) else return new Date( s.substr(m.indexOf("yy"),2), s.substr(m.indexOf("MM"),2)-1, s.substr(m.indexOf("dd"),2) ) } catch (e) { return null; } }/*test: alert(getDateByMask("2002/02/01","yyyy/MM/dd")) alert(getDateByMask("02/02/01","yy/MM/dd"))*/function checkDateByMask(s,m){ if (s.length!=m.length){ return false; } try{ var d = getDateByMask(s,m) m=m.replace(/Y/g,"y").replace(/D/g,"d"); if (m.indexOf("yyyy")>-1) return ( d.getFullYear() == s.substr(m.indexOf("yyyy"),4) && d.getMonth() == s.substr(m.indexOf("MM"),2)-1 && d.getDate() == s.substr(m.indexOf("dd"),2) ) else return ( d.getYear() == s.substr(m.indexOf("yy"),2) && d.getMonth() == s.substr(m.indexOf("MM"),2)-1 && d.getDate() == s.substr(m.indexOf("dd"),2) ) } catch (e) { return false; } }/*test: alert(checkDateByMask("2002/02/01","yyyy/MM/dd")) alert(checkDateByMask("02/02/01","yy/MM/dd")) alert(checkDateByMask("2002/13/01","yyyy/MM/dd")) alert(checkDateByMask("02/02/30","yy/MM/dd"))*/ function myGo(theForm){ var iApplydate = theForm.Applydate.value; if(iApplydate.length == 0) { alert("请填写登记日期 !\n如:2002-03-01"); return false; } if (iApplydate.length > 10) { alert("请正确填写登记日期!\n如:2002-03-01"); return false; } for(var j=0;j<iApplydate.length;j++) { if(iApplydate.charAt(j) == '-') jCount++; if ((iApplydate.charAt(j) < '0' || iApplydate.charAt(j) >'9' ) && iApplydate.charAt(j) != '-') { alert("请正确填写登记日期!\n如:2002-03-01"); return false; } } if(iApplydate.charAt(0) == '-' || iApplydate.charAt(iApplydate.length-1) == '-' || jCount != 2) { alert("请正确填写登记日期!\n如:2002-03-01"); return false; } return true;}//--></script> 弹出列表 window.open 弹出一个窗体 固定大小 没有地址栏之类的东西怎么弄啊 extjs的窗口最大化的问题 js 动态绑定事件问题 如何自己控制文本框高度 js如何判断隐藏域的值问题 请教 动态生成的cell怎么添加事件? 不同版本的IE,直接关闭的代码都不一样?急死人了。 JavaScript中怎样判断一个字符串是数字? 【jQuery】请教一个事件问题 怎么用java实现点省份的菜单里的辽宁选项,城市的菜单里就列出锦州、沈阳。 如果判别浏览器当前是否显示地址栏,文件什么之类的?
/\d\d\d\d\/[0-1]\d\/[0-3]\d/恐怕还要自己写一个函数判断闰年和大小月。这个就很简单哦。我不写代码了。
if (s.length!=m.length){
return false;
}
try{
m=m.replace(/Y/g,"y").replace(/D/g,"d");
if (m.indexOf("yyyy")>-1)
return new Date(
s.substr(m.indexOf("yyyy"),4),
s.substr(m.indexOf("MM"),2)-1,
s.substr(m.indexOf("dd"),2)
)
else return new Date(
s.substr(m.indexOf("yy"),2),
s.substr(m.indexOf("MM"),2)-1,
s.substr(m.indexOf("dd"),2)
)
}
catch (e)
{
return null;
}
}
/*
test:
alert(getDateByMask("2002/02/01","yyyy/MM/dd"))
alert(getDateByMask("02/02/01","yy/MM/dd"))
*/function checkDateByMask(s,m){
if (s.length!=m.length){
return false;
}
try{
var d = getDateByMask(s,m)
m=m.replace(/Y/g,"y").replace(/D/g,"d");
if (m.indexOf("yyyy")>-1)
return (
d.getFullYear() == s.substr(m.indexOf("yyyy"),4)
&& d.getMonth() == s.substr(m.indexOf("MM"),2)-1
&& d.getDate() == s.substr(m.indexOf("dd"),2)
)
else return (
d.getYear() == s.substr(m.indexOf("yy"),2)
&& d.getMonth() == s.substr(m.indexOf("MM"),2)-1
&& d.getDate() == s.substr(m.indexOf("dd"),2)
)
}
catch (e)
{
return false;
}
}
/*
test:
alert(checkDateByMask("2002/02/01","yyyy/MM/dd"))
alert(checkDateByMask("02/02/01","yy/MM/dd"))
alert(checkDateByMask("2002/13/01","yyyy/MM/dd"))
alert(checkDateByMask("02/02/30","yy/MM/dd"))
*/
{
var iApplydate = theForm.Applydate.value;
if(iApplydate.length == 0)
{
alert("请填写登记日期 !\n如:2002-03-01");
return false;
}
if (iApplydate.length > 10)
{
alert("请正确填写登记日期!\n如:2002-03-01");
return false;
}
for(var j=0;j<iApplydate.length;j++)
{
if(iApplydate.charAt(j) == '-')
jCount++;
if ((iApplydate.charAt(j) < '0' || iApplydate.charAt(j) >'9' ) && iApplydate.charAt(j) != '-')
{
alert("请正确填写登记日期!\n如:2002-03-01");
return false;
}
}
if(iApplydate.charAt(0) == '-' || iApplydate.charAt(iApplydate.length-1) == '-' || jCount != 2)
{
alert("请正确填写登记日期!\n如:2002-03-01");
return false;
} return true;
}//-->
</script>