我正在构建一个日期选择器 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/