2017-11-22 18 views
1

私は日付ピッカーを作成しています。ユーザーは、日、月、年を入力するか、カレンダーから選択することができます。日付入力の検証方法

は私が怠けていると使用して日付がテキスト入力のために有効であるかどうかを見ている:しかし

validateDate(event) { 
    const { selectedDay, selectedMonth, selectedYear } = this.state; 
    const checkDateIsValid = new Date(
     selectedMonth.toString() + '/' + 
     selectedDay.toString() + '/' + 
     selectedYear.toString()); 
    if (checkDateIsValid == 'Invalid Date') { 
     this.setState({ validDate: false }); 
    } 
    else { 
     this.setState({ validDate: true }); 
    } 
} 

、2月の31日の無効な日付が有効なDateオブジェクトを作成する問題があります「3月3日...」。私はあなたが有効なマッチを持つことができるかどうかを調べるために、日と月のフィールドを手動で比較して入力の検証を得ることができると知っていますが、それを行うより速い方法があるのだろうか?事前に感謝

答えて

1

Moment.jsを使用して、日付が有効かどうかを確認するだけです。私はなぜあなたが日付を分割して参加しているのか分かりません。しかしそれはあなたを助けるでしょう!

var date = moment(YOUR_DATE_STRING); // For example --> moment('2017-11-22') 
if(date.isValid()) { 
    this.setState({ validDate: true }); 
} 
else { 
    this.setState({ validDate: false }); 
} 
+0

ありがとうございました!私はそれが欲しかったように動作します。入力が別の日、月、年のボックスで構成されているときに文字列を結合しています – user3187956

+0

@ user3187956 - そうですね。答えがあなたに合っていれば受け入れてください。 –

関連する問題