zhyiwww
          用平實(shí)的筆,記錄編程路上的點(diǎn)點(diǎn)滴滴………
          posts - 536,comments - 394,trackbacks - 0

          我們要檢驗(yàn)的日期格式:XXXX-XX-XX(X為數(shù)字)


          [\d]{4}-[\d]{2}-[\d]{2}

          這個(gè)是我看到的一個(gè)日期驗(yàn)證的正則表達(dá)式。

          看起來能實(shí)現(xiàn),因?yàn)?/span>

          2006-6-6 肯定是不符合的,而

          2006-06-06 肯定是符合的。

          但是,我們來看,

          2006-00-00 也肯定是符合的,但是,有意義嗎?

          2006-99-99 也肯定是符合的,但是,有意義嗎?

          答案,大家都知道,肯定沒有意義。所以,我覺得這個(gè)表達(dá)式還有要改進(jìn)的地方。

          問題的關(guān)鍵是數(shù)值大小的限制,如何來限制?

          我把它改進(jìn)了一下:

          [\d]{4}-[0-1][0-9]-[0-3][0-9]

          我們乍一看,覺得可行,

          2006-19-39 肯定符合,但是沒有意義。

          看來,還是有問題。

          到現(xiàn)在,我也沒有想清楚這個(gè)看似簡(jiǎn)單的問題如何來解決。

          ?

          如果用這個(gè)表達(dá)式來檢驗(yàn)日期的話,是不行的,還需要你進(jìn)行數(shù)值范圍的驗(yàn)證。

          如果哪位朋友知道的話,請(qǐng)指點(diǎn)一二。謝謝。



          |----------------------------------------------------------------------------------------|
                                     版權(quán)聲明  版權(quán)所有 @zhyiwww
                      引用請(qǐng)注明來源 http://www.aygfsteel.com/zhyiwww   
          |----------------------------------------------------------------------------------------|
          posted on 2007-03-19 11:07 zhyiwww 閱讀(6097) 評(píng)論(6)  編輯  收藏 所屬分類: 正則表達(dá)式

          FeedBack:
          # re: 疑惑:如何用正則表達(dá)式來驗(yàn)證日期
          2007-03-19 11:10 | zhyiwww
          難道正則表達(dá)式只能用來匹配不能用來驗(yàn)證?現(xiàn)在還不明白。
            回復(fù)  更多評(píng)論
            
          # re: 疑惑:如何用正則表達(dá)式來驗(yàn)證日期
          2007-03-20 08:37 | kawaii
          看看這個(gè)行嗎
          [/d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])]  回復(fù)  更多評(píng)論
            
          # re: 疑惑:如何用正則表達(dá)式來驗(yàn)證日期
          2007-03-20 11:23 | zhyiwww
          這個(gè)沒有問題了,就我們的驗(yàn)證足夠了。
          現(xiàn)在我們把我們的需求放在一邊,就來討論技術(shù)的實(shí)現(xiàn)。

          如果嚴(yán)格來定義一個(gè)合法合理的日期的話,可能還有一個(gè)日期不能實(shí)現(xiàn):
          2007-02-29
          這個(gè)日期,上面能驗(yàn)證通過,但是,我們查一下日歷就知道,沒有29這一天。
          現(xiàn)在問題,是,驗(yàn)證日期的合理性,而不僅是驗(yàn)證其合法性的問題了。
          如果感興趣的話,可以思考一下。
          這個(gè)問題,我也沒有想好。
            回復(fù)  更多評(píng)論
            
          # re: 疑惑:如何用正則表達(dá)式來驗(yàn)證日期
          2007-03-20 11:27 | zhyiwww
          現(xiàn)在我們問題是如何用正則表達(dá)式來表達(dá)閏年和非閏年?
            回復(fù)  更多評(píng)論
            
          # re: 疑惑:如何用正則表達(dá)式來驗(yàn)證日期[未登錄]
          2007-08-29 14:44 | tony
          試試這個(gè)看看:霍霍!!!
          /*
          *validate date(include bissextile)
          *format: yyyy-MM-dd
          *add by tony
          */
          function isValidDate(sText) {
          var reDate = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29))$/

          return reDate.test(sText);
          }
          若有正則表達(dá)式方面交流的意向,可加我的MSN: niitlzm@hotmain.com  回復(fù)  更多評(píng)論
            
          # re: 疑惑:如何用正則表達(dá)式來驗(yàn)證日期[未登錄]
          2008-05-11 22:05 | terry
          /^(19[7-9]\d|20[0-5]\d)\-(0?\d|1[0-2])\-([0-2]?\d|3[01])$/  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 得荣县| 商丘市| 阜城县| 友谊县| 静海县| 康平县| 青岛市| 扶沟县| 德州市| 舞阳县| 怀远县| 沂水县| 沁阳市| 建始县| 鄂托克前旗| 太湖县| 沁水县| 商南县| 茌平县| 瓦房店市| 榕江县| 太湖县| 个旧市| 祁门县| 永清县| 蓬莱市| 莫力| 漳州市| 三亚市| 酒泉市| 太仆寺旗| 乐陵市| 资源县| 江川县| 玛多县| 绥江县| 洪雅县| 双牌县| 含山县| 获嘉县| 大余县|