2012-03-05 80 views
0

我有以下正則表達式以'mm/dd/yyyy'格式驗證日期。它適用於'12/11/2006'。但如果我使用'2/3/2011',它不起作用。請問您能否改正以下表達方式以接受'12/11/2006'或'2/3/2011'的格式?謝謝你的幫助。javascript中日期驗證的正則表達式

var date = /(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d/; 
+1

我建議簡化表達'/ \ d \ d [\ /.-]/\ d \ d [\ /?。 - ] \ d {4} /'(或類似的) - 即日期和月份的任何一位或兩位數字。我不打算在正則表達式中限制這些,僅僅因爲你將不得不單獨測試這些值,以確保給定的月份和年份組合的日期不是太高(例如,沒有Feb 30,不是2月29日,除非是閏年)。 – nnnnnn 2012-03-05 20:57:14

回答

2
var date = /(0?[1-9]|1[012])[- \/.](0?[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d/; 

那就讓0可選:0?