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

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

检测无效日期 js - Javascript

Javascript 中,如果输入的日期不符合标准日期格式,那么它将被视为无效日期。这可能会导致代码问题和异常。

为了避免这种情况,我们可以使用正则表达式来检测无效日期。

正则表达式

下面是一个简单的正则表达式,可以用来检测无效日期:

function isInvalidDate(dateString) {
  var regEx = /^\d{4}-\d{2}-\d{2}$/;
  return !dateString.match(regEx);
}

console.log(isInvalidDate("2019-01-01"));  // false
console.log(isInvalidDate("2019/01/01"));  // true

此正则表达式要求日期字符串的格式为 YYYY-MM-DD。如果日期不符合此格式,则返回 true,否则返回 false

更严格的检测

上述正则表达式只检测日期字符串的格式是否正确,但无法确保该日期是否实际存在。

为了更严格地检测日期的有效性,我们可以使用 Date 对象,并将其传递给 isNaN() 方法,它将返回一个布尔值,表示该日期是否有效。

function isInvalidDate(dateString) {
  var date = new Date(dateString);
  return isNaN(date.getTime());
}

console.log(isInvalidDate("2019-01-01"));  // false
console.log(isInvalidDate("2019/01/01"));  // true

此方法可以确保该日期在日历上确实存在,并避免由于格式问题而导致的异常。

总结

在 Javascript 中,我们可以使用正则表达式来检测日期字符串的格式是否正确,以避免无效日期的问题。如果需要更严格的检测,则可以使用 Date 对象,并将其传递给 isNaN() 方法。