2013-12-12 154 views
-3

以下函數適用於格式爲yyyy-MM-dd的日期a,範圍爲1900-01-302099-12-31Javascript正則表達式驗證

如何更改我將其更改爲在1900-01-309999-12-31範圍內的日期工作?

function validateDateFormat(val) 
{ 
    var patt =/^((19|20)\d\d)[- \-.](0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])$/; 
    var temp = val; 
    if(isNaN(temp.match(patt))) 
     return true; 
    else 
     return false; 
} 

回答

1

/(19[0-9]{2}|[2-9][0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])/應該只是罰款。

DEMO

Y 9999-12-31 
Y 2013-12-12 
Y 1990-01-01 
N 1800-01-01 
Y 1900-01-01 
N 10000-12-12 
+0

謝謝你的作品 – sunleo

0

試試這個:

var patt =/^((19|[2-9][0-9])\d{2})[- \-.](0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])$/; 
+0

你的正則表達式也將在1000和1900之間 – Theox

+0

匹配幾年謝謝你,我已經解決這個問題。 – BaBL86

0

只要改變今年的前兩個數字:

var patt =/^((19|[2-9]\d)\d{2})[- \-.](0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])$/;