📜  js 检查无效日期 - Javascript (1)

📅  最后修改于: 2023-12-03 15:32:23.845000             🧑  作者: Mango

JS检查无效日期 - Javascript

有时候,我们需要在Javascript中检查日期是否有效。无效日期是指不可能存在的日期,例如:2019年2月29日(平年不存在这个日期)或2019年13月1日(一年只有12个月)。本文将介绍如何在Javascript中检查无效日期。

方法一:使用Date对象

我们可以使用Javascript的Date对象来检查日期是否有效。当日期无效时,Date对象会自动将其转换为另一个日期。因此,我们可以使用以下代码来检查日期是否有效:

function isValidDate(dateString) {
  // 实例化一个Date对象
  var d = new Date(dateString);
  // 检查日期是否相同
  return dateString === d.toISOString().slice(0, 10);
}

这个函数接受一个日期字符串作为参数,并实例化一个Date对象。然后,它检查Date对象是否已经转换为另一个日期。如果是,说明原始日期无效,函数将返回false。否则,函数将返回true。

方法二:使用正则表达式

我们也可以使用正则表达式来检查日期是否有效。以下是一个可以检查日期是否有效的正则表达式:

function isValidDate(dateString) {
  var regEx = /^\d{4}-\d{2}-\d{2}$/;
  if(!dateString.match(regEx)) return false;  // Invalid format
  var d = new Date(dateString);
  var dNum = d.getTime();
  if(!dNum && dNum !== 0) return false; // NaN value, Invalid date
  return d.toISOString().slice(0, 10) === dateString;
}

这个函数接受一个日期字符串作为参数,并使用正则表达式来检查该字符串是否具有YYYY-MM-DD格式。如果字符串无效,则函数返回false。否则,函数使用Date对象来检查日期是否有效。最后,函数将返回true或false,具体取决于日期是否有效。

结论

使用以上两种方法之一可以检查日期是否有效。通过使用这些方法,我们可以确保日期字符串包含有效数据。