2016-04-14 11 views
0

月、日、年の入力欄が分かれています。現在の日付正規表現はうるう年を考慮していません。私はうるう年を説明するために他の正規表現を追加しようとしましたが、成功しませんでした。あなたの助けが大変ありがとうございます。うるう年のためにRegExを変更するには何が必要ですか?

var bmonth = Apperyio('register_birthdaymonth').val(); 
var bday = Apperyio('register_birthdayday').val(); 
var byear = Apperyio('register_birthdayyear').val(); 
var dateString = (bmonth + "/" + bday + "/" + byear) 

var date_regex = /^(?:(0[1-9]|1[012])[\/.](0[1-9]|[12][0-9]|3[01])[\/.](18|19|20)[0-9]{2})$/; 
if (!(date_regex.test(dateString))) 
{ 
    errorMsg = errorMsg + "1"; 
    document.getElementById("bdayError").innerHTML = "Please enter your birthday."; 
} 
+0

入力があなたのために失敗した日付? –

+0

うるう年は正しく検証されません。例:02/29/1991を許可します。 – timmyusa

+0

正規表現が必要ですか?あなたは、日付オブジェクトを使用することができます。同様に:http://jsbin.com/kamebibena/3/edit?js,console,outputこのようにして、過去の日付もかなり簡単に説明できます。 – John

答えて

0

あなたはすでにこれを見ましたか? Regular Expression | Leap Years and More

ない場合は、次のことを試してください。 (02)[\/.]29[\/.](((18|19|20)(04|08|[2468][048]|[13579][26]))|2000)

+0

私が現在の正規表現を提供した正規表現に置き換えたときに、予期しない '/'を含む複数のエラーが発生しました どうすればこの問題を解決できますか? – timmyusa

+0

追加情報がありがとうございます。 – timmyusa

関連する問題