2012-03-05 9 views
0

「mm/dd/yyyy」形式で日付を検証する次の正規表現があります。それは'12/11/2006 'のために働く。しかし、私が '2011年2月3日'を使用しても、動作しません。 '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}/'(またはそれに類するもの) - つまり、曜日と月の任意の1桁または2桁の数字。私は正規表現の中でこれらを制限するのは気にしません。とにかく、日付が指定された月と年の組み合わせにあまりにも高くないことを確かめるために値を別々にテストしなければならないからです。うるう年がない限り、2月29日はありません)。 – nnnnnn

答えて

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

だけ0はオプションます0?