javascript - 如何验证日期输入?

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

最佳答案

您可以简单地使用 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 });
}

关于javascript - 如何验证日期输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47437982/

相关文章:

javascript - 为什么在 react-native 中使用 this.props.navigator.replace 再次渲染同一个场景?

javascript - 如何使用 JSON Schema 验证表单?

javascript - 为什么容器 div 高度没有更新?

javascript - 如何检测占位符文本在输入字段中溢出?

javascript - React-Router 的历史对象问题

reactjs - 当我按下按钮时,我想添加许多员工,但只剩下一个。 react

java - 捕获异常后不终止反序列化过程

php - 咨询阵列 VS 咨询数据库以验证数据

javascript - 在 Javascript 中初始化多个变量的优雅方法

javascript - Outlook 中的 HTML anchor mailto 主题编码问题