关键词

纯javascript判断查询日期是否为有效日期

针对“纯javascript判断查询日期是否为有效日期”的问题,我给出如下攻略:

1.判断规则

要判断日期是否有效,需要先确定日期的格式。在常见的日期格式中,比较常用的是以下三种:

  • 年月日格式:如2022-07-01;
  • 月日年格式:如07/01/2022;
  • 日月年格式:如01.07.2022。

无论哪种日期格式,都需要满足一些规则才能算是有效的日期。下面列出规则:

  • 日期中必须包含年、月、日三个部分;
  • 年份必须在1年至9999年之间;
  • 月份必须在1月至12月之间;
  • 日数必须在该月的天数范围之内。

2.判断逻辑

了解了判断规则后,就可以通过以下逻辑进行判断:

  • 将输入的日期字符串按照指定格式转化为日期对象;
  • 判断是否成功转化为日期对象:如果转化成功,则进行下一步判断,否则返回不合法;
  • 判断年份是否满足规则:如果不满足,则返回不合法;
  • 判断月份是否满足规则:如果不满足,则返回不合法;
  • 判断日数是否满足规则:如果不满足,则返回不合法;
  • 如果全部满足规则,则返回合法。

3.代码实现

接下来,我给出两个示例,展示如何将上述逻辑通过javascript代码实现:

示例1:

下面的代码,展示了将年月日格式的日期字符串转化为日期对象,并判断是否为有效日期:

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

示例2:

下面的代码,展示了将日月年格式的日期字符串转化为日期对象,并判断是否为有效日期:

function isValidDate(dateString){
    var regEx = /^\d{1,2}.\d{1,2}.\d{4}$/;
    if(!dateString.match(regEx)) return false;  // Invalid format
    var d = new Date(dateString.replace(/(\d{2}).(\d{2}).(\d{4})/, "$2/$1/$3"));
    if(!d.getTime()) return false; // Invalid date (or this could be epoch)
    return (d.toISOString().slice(0,10) === dateString.replace(/(\d{2}).(\d{2}).(\d{4})/, "$3-$2-$1"));
}

以上就是详细讲解“纯javascript判断查询日期是否为有效日期”的完整攻略,希望能给您带来帮助!

本文链接:http://task.lmcjl.com/news/9886.html

展开阅读全文