日期格式验证的正则表达式详解

      ---- 考虑平年情况----------------------

  //**********************年份范圍0001-9999*************************
        //[1-9]/d{3}        千位數大于0
        ///d[1-9]/d{2}    百位數大于0
        ///d{2}[1-9]/d    十位數大于0
        ///d{3}[1-9]        個位數大于0
        //最后為:[1-9]/d{3}|/d[1-9]/d{2}|/d{2}[1-9]/d|/d{3}[1-9]
        //********************月份為1,3,5,7,8,10,12的天數為1-31天,MM-dd******************
        //(0[13578]|1[02])//(0[1-9]|[12]/d|3[01])
        //********************月份為4,6,9,11的天數為01-30天,MM-dd*********************
        //(0[469]|11)//(0[1-9]|[12]/d|30)
        //********************月份为 2,考虑平年情况,MM-dd*****************************
        //02//(0[1-9|1/d|2[0-8])


        //平年的表達式為:([1-9]/d{3}|/d[1-9]/d{2}|/d{2}[1-9]/d|/d{3}[1-9])//(((0[13578]|1[02])//(0[1-9]|[12]/d|3[01]))|((0[469]|11)//(0[1-9]|[12]/d|30))|(02//(0[1-9|1/d|2[0-8])))
      

     ---- 考虑闰年情况----------------------

        //********************闰年的考虑,能被4整除但不能被100整除的年份****************
        ///d{2}(0[48]|[13579][26]|[2468][048])
        //********************闰年,能被400整除的年份。能被400整除的数肯定能被100整除,因此后两位肯定是00,我们只要保证前两位能被4整除即可
        //(0[48]|[2468][048]|[3579][26])00
        //********************闰年2月分份,MM-dd***************************************
        //02//(0[1-9]|[12]/d)


        //閏年的表達式為:(/d{2}(0[48]|[13579][26]|[2468][048])|(0[48]|[2468][048]|[3579][26])00)//(((0[13578]|1[02])//(0[1-9]|[12]/d|3[01]))|((0[469]|11)//(0[1-9]|[12]/d|30))|(02//(0[1-9]|[12]/d)))

 

//最终结果为:

^(([1-9]/d{3}|/d[1-9]/d{2}|/d{2}[1-9]/d|/d{3}[1-9])//(((0[13578]|1[02])//(0[1-9]|[12]/d|3[01]))|((0[469]|11)//(0[1-9]|[12]/d|30))|(02//(0[1-9|1/d|2[0-8]))))|((/d{2}(0[48]|[13579][26]|[2468][048])|(0[48]|[2468][048]|[3579][26])00)//(((0[13578]|1[02])//(0[1-9]|[12]/d|3[01]))|((0[469]|11)//(0[1-9]|[12]/d|30))|(02//(0[1-9]|[12]/d))))$

以上是针对2010/09/09格式的正则表达式

如果要改为2010-10-10格式的,只要把//替换成/-就ok

 

 


   

       

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kingboyrang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值