当前位置:编程学习 > JAVA >>

求一份验证YYYY/MM/DD格式日期的正则表达式

求各位js高手给一份验证YYYY/MM/DD格式日期的正则表达式。 --------------------编程问答-------------------- 这个正则很麻烦的。要判断日期的有效性,就得考虑平年闰年。 --------------------编程问答--------------------

格式可以 如1楼所说 要判断闰年这些比较复杂 --------------------编程问答--------------------

var check = false;
var re = /^\d{4}\/\d{2}\/\d{2}$/;
if( re.test(value)){
    var adata = value.split('/');
    var gg = parseInt(adata[2],10);
    var mm = parseInt(adata[1],10);
    var aaaa = parseInt(adata[0],10);
    var xdata = new Date(aaaa,mm-1,gg);
    if ( ( xdata.getFullYear() == aaaa ) && ( xdata.getMonth () == mm - 1 ) && ( xdata.getDate() == gg ) )   
            check = true;

return check;

前两天一个人问过相似的 --------------------编程问答-------------------- 将以下代码保存为.html文件(如test.html):

<script>
function testNum(){
var nums=[123.1234, 12.1234, 1.1234, 1234, 123, 12, 1, 0, 0.1, 0.12, 0.123, 1.1, 1.12, 1.123, 10.1, 10.12, 10.123, 345.1, 345.12, 345.123];
var reg=/^\d{0,3}(\.\d{0,3})?$/; 
var len=nums.length;
for(var i=0;i<len;i++){
document.writeln("current.num="+nums[i]+", bool="+reg.test(nums[i])+"<br>");

}
}

function testDate(){
var dates=["1970/07/01","1970/12/29","1970/12/32","1970/13/15"];
var regDates=/^\d{4}\/([0][0-9])|([1][0-2])\/(([0-2][0-9])|([3][0-1]))$/; 
var len=dates.length;
for(var i=0;i<len;i++){
document.writeln("======current.date="+dates[i]+", bool="+regDates.test(dates[i])+"<br>");

}
}

testNum(); //你在另个贴要求:http://bbs.csdn.net/topics/390352983
testDate(); //此方法未判断平年闰年。。。
</script>

然后运行numtest.html --------------------编程问答-------------------- 然后运行numtest.html 
改为:
然后运行test.html  --------------------编程问答-------------------- 如果是前台输入校验的话,mydate97,然后让text的readonly="true"基本就可以了 --------------------编程问答-------------------- 有没有 Winform 里 yyyy-M-d 格式的正规表达式了,我试了好多方法,都验证不准确啊,看来验证事件格式的正规表达式还不是想象中那么简单的事。 --------------------编程问答-------------------- ^((?!0000)[0-9]{4}([-/.])((0[1-9]|1[0-2])([-/.])(0[1-9]|1[0-9]|2[0-8])|((0[13-9]|1[0-2])([-/.])(29|30))|((0[13578]|1[02])([\\-\\/\\.])31)))|(([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)([\\-\\/\\.])02([\\-\\/\\.])29$)

  这样子
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,