javascript - 在 Javascript 中验证错误日期
问题描述
我正在按照这个例子来验证日期字符串。
虽然下面的示例评估为真。
var date = new Date('12/21/2019');
console.log(date instanceof Date && !isNaN(date.valueOf()));
下面的示例也评估为 true,即使它是一个错误的日期。我的意思是错误的日期,该日期在日历中不存在。
var date = new Date('02/31/2019');
console.log(date instanceof Date && !isNaN(date.valueOf()));
有更好的方法吗?
解决方案
使用momentjs
moment("02/30/2019", "MM/DD/YYYY", true).isValid(); // false
moment("03/30/2019", "MM/DD/YYYY", true).isValid(); // true
来自图书馆的当前文档:isValid momentjs
moment("not a real date").isValid(); // false
您仍然可以通过拆分字符串并评估每个部分来编写自己的解决方案。这种方法的问题在于,不仅2 月不是 31 天,还有其他月份也只有 30 天。因此,您需要一些时间才能开发出“没有错误”的解决方案。
推荐阅读
- python - 找不到关键字参数“{'pk':''}' 的“project_detail”反向。尝试了 1 种模式:['catalog/projects/(?P
[0-9]+)/$'] - reactjs - “console.error” 带有有效负载的操作“NAVIAGTE”未被任何导航器处理
- apache-spark - 如何获取表头(模式)中的信息?
- android - Android Kotlin - 如何将命名函数传递给另一个函数中的 DialogInterface.OnClickListener 参数?
- javascript - NodeJS 卡在 cryto.pbkdf2Sync 函数
- python - 如何隐藏 plotly yaxis 标题(在 python 中)?
- java - 使用 Scanner 的字符串数组列表
- c++ - 在编译时区分 char 和 wchar_t
- arrays - 如何根据条件计算谷歌表格上的加权平均值?
- javascript - Vue.js - 使用 :value 时选择元素不更新,v-model 很好