📜  在 js 中判断无效日期 (1)

📅  最后修改于: 2023-12-03 14:50:57.963000             🧑  作者: Mango

在 JavaScript 中判断无效日期

在 JavaScript 中,我们可以使用内置的 Date 对象和一些方法来判断一个日期是否为无效日期。

方法一:使用 isNaN()
function isInvalidDate(dateString) {
  // 尝试将日期字符串转换为日期对象
  var date = new Date(dateString);
  
  // 使用isNaN()函数判断日期是否为无效日期
  if (isNaN(date.getTime())) {
    return true; // 日期无效
  } else {
    return false; // 日期有效
  }
}

使用示例:

console.log(isInvalidDate('2022-13-01')); // true
console.log(isInvalidDate('2022-02-29')); // true
console.log(isInvalidDate('2022-12-31')); // false
方法二:使用正则表达式

如果你希望自定义日期的格式,你可以使用正则表达式来进行匹配和判断。

function isInvalidDate(dateString) {
  // 定义日期格式的正则表达式
  var dateFormat = /^(19|20)\d\d-(0[1-9]|1[0-2])-([0-2][1-9]|3[0-1])$/;

  // 使用正则表达式匹配日期字符串
  if (!dateFormat.test(dateString)) {
    return true; // 日期无效
  } else {
    var date = new Date(dateString);
    return isNaN(date.getTime()); // 判断日期对象是否无效
  }
}

使用示例:

console.log(isInvalidDate('2022-13-01')); // true
console.log(isInvalidDate('2022-02-29')); // true
console.log(isInvalidDate('2022-12-31')); // false

以上是两种常用的方法来判断一个日期是否为无效日期。根据实际需求选择适合的方法来判断日期的有效性。

注意:在 JavaScript 中,判断日期是否无效的方法仅适用于日期格式不正确的情况。对于特殊的日期,例如闰年中的2月29日,以上方法仍然会认为是无效日期。如果需要对更复杂的日期进行判断,请使用相关的第三方库或编写更复杂的自定义函数。