纯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判断查询日期是否为有效日期”的完整攻略,希望能给您带来帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:纯javascript判断查询日期是否为有效日期 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • javascript事件模型介绍

    JavaScript事件模型介绍 JavaScript事件模型是一种基于浏览器内部事件循环机制的编程模型。通过事件模型,我们可以定义当某个特定事件发生时,需要执行的 JavaScript 代码。事件模型是一种异步编程的方式,它能够帮助我们编写更高效、更灵活、更交互性强的网页应用。 事件模型基本原理 事件模型基于一个事件监听器的机制,用于监视一个特定的事件是否…

    JavaScript 2023年6月10日
    00
  • Vue 3.0的attribute强制行为理解学习

    下面是关于“Vue 3.0的attribute强制行为理解学习”的完整攻略,包含了相关概念和两条示例说明。 什么是attribute attribute(属性)是HTML标签中的一个概念,例如class、style、id等。在Vue中,我们经常需要在组件中传入props属性,这些属性会被传递给组件的子元素,我们可以在子元素中使用这些属性进行相应的操作。 Vu…

    JavaScript 2023年6月11日
    00
  • 深入理解Javascript中this的作用域

    下面是针对“深入理解Javascript中this的作用域”的完整攻略: 1. this的基本概念 在 JavaScript 中,this 代表函数运行时的上下文环境,指向的是当前函数执行的对象。也就是说,this 的值是根据函数的调用方式而定的,有以下几种: 函数作为独立的函数调用时,this 指向全局对象,也就是 window(浏览器环境)或 globa…

    JavaScript 2023年6月10日
    00
  • TypeScript 学习总结

    TS:是JS的超集,即对JS的扩展,主要提供了类型系统和对ES6+的支持,但TS最终会转换为js代码去执行。特点:1. 始于JavaScript, 归于JavaScript2. 强大的类型系统3. 先进的JavaScript TypeScript JavaScript 语言 面向对象编程语言 面向脚本编程 是否支持可选参数 支持 不支持 是否支持静态类型 支…

    JavaScript 2023年4月18日
    00
  • js中如何对url进行编码和解码

    在 JavaScript 中,有两种方式可以对 URL 进行编码和解码,分别是 encodeURI() 和 encodeURIComponent()。 encodeURI() encodeURI() 方法用于将 URI (Uniform Resource Identifier) 进行编码,但是不会对一些特殊字符 (;,/?:@&=+$#) 进行编码。…

    JavaScript 2023年5月20日
    00
  • 5款JavaScript代码压缩工具推荐

    当我们的JavaScript代码变得越来越复杂时,它的大小也会随之增加。这意味着每次用户打开我们的网站时,都要下载更多的JavaScript代码。为了优化加载速度和性能,许多开发人员选择使用JavaScript压缩工具来减小代码的大小。本文将为您介绍五个优秀的JavaScript代码压缩工具,并解释如何在您的项目中使用它们。 1. UglifyJS Ugli…

    JavaScript 2023年5月27日
    00
  • 体验js中splice()的强大(插入、删除或替换数组的元素)

    下面详细讲解一下“体验js中splice()的强大(插入、删除或替换数组的元素)”的攻略: 1. 什么是splice() splice()是JavaScript中的一个数组方法,可以在数组中插入、删除或替换元素。它有三个参数,分别是: start:操作开始的索引位置; deleteCount:要删除的元素个数; items:要插入到数组中的元素。 其中,st…

    JavaScript 2023年5月27日
    00
  • 简介JavaScript中的setTime()方法的使用

    下面为你详细讲解Javascript中的setTime()方法的使用: 一、什么是setTime()方法 setTime()是Javascript中的一个方法,它用于在指定的时间后执行一个函数或者指定的代码,本质上是一个定时器。通过setTime()方法,可以实现定时刷新页面、变换网页内容、控制网页动画等等。 setTime()方法一共有两个参数,第一个参数…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部