如何验证日期输入?

时间:2017-11-22 15:08:03

标签: javascript reactjs validation date object

我正在构建一个日期选择器React组件,用户可以在其中键入日,月,年或从日历中选择它。

我很懒,看看日期是否对输入的文字有效:

  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日的无效日期将创建“3月3日......”的有效日期对象。我知道我可以通过手动比较日期和月份字段来查看是否可以有效匹配来获得输入验证,但我想知道是否有更快的方法可以做到这一点?提前致谢

1 个答案:

答案 0 :(得分:2)

您只需使用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 });
}