迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

在 JavaScript 中验证日期

作者:迹忆客 最近更新:2023/03/24 浏览次数:

在 JavaScript 中验证日期变得很重要,因为位于不同位置的各个人在输入日期时遵循不同的格式。在 Web 应用程序中验证日期时,我们必须遵循特定的格式,以便以后使用日期变得更加容易。

本文将介绍如何在 JavaScript 中以 mm/dd/yy 格式验证日期。


使用 JavaScript 中的 moment.js 库验证日期

moment.js 库是在 JavaScript 中验证和格式化日期和时间的最佳,最简便的方法。我们将使用此库在 JavaScript 中验证和显示日期。要使用此库,我们首先必须使用以下命令下载它。

npm install -g moment --save 

它将在你的系统中安装一会儿。然后,我们可以直接使用 moment.js 库中提供的 moment() 方法。以下是在 JavaScript 中使用 moment.js 验证日期的代码。

import * as moment from 'moment';

let result = moment("05/22/12", 'MM/DD/YY',true).isValid();
console.log(result)

输出:

true

moment 函数采用三个参数作为输入。第一个是我们要验证的输入日期,第二个是我们希望日期遵循的格式,最后一个参数是可选的;如果将其设置为 true,则将使用严格解析。严格的分析要求格式和输入(包括定界符)完全匹配。最后,我们使用 isValid() 函数检查输入日期是否有效,如果输入日期与格式 dd/mm/yy 匹配,则返回布尔值 true,如果与日期匹配,则返回 false。输入的日期与指定的格式不匹配。


在 JavaScript 中使用正则表达式验证日期

正则表达式是验证日期的好方法。对于正则表达式,许多人面临的唯一问题是难以理解它们,因为它们包含各种符号和数字。正则表达式中的每个符号或表达式都有其自己的含义。使用这些表达式,我们可以在 JavaScript 中以 dd/mm/yy 格式验证日期。

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Document</title>
  </head>
  <body>
    <h1 id="message"></h1>
    <script>
      
      var date_regex = /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(0[1-9]|1[1-9]|2[1-9])$/;
        var testDate = "03/17/21"
        if (date_regex.test(testDate)) {
            document.getElementById("message").innerHTML = "Date follows dd/mm/yy format";
        }
        else{
          document.getElementById("message").innerHTML = "Invalid date format";
        }

    </script>
  </body>
</html>

在浏览器中输出:

Date follows dd/mm/yy format

正则表达式/^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(0[1-9]|1[1-9]|2[1-9])$/具有 3 个组。第一组代表,第二组代表,第三组代表的后两位。无论在何处看到正斜杠/,它都代表该组的开始,而反斜杠\则代表该组的结束。

一年有 12 个月。因此,选择月份时有两种可能性,可以以 0 开头,后跟数字,或者以 1 开头,后跟数字 12。对于其他组来说,相同的过程是相似的。第二组中的\d 表示 0 到 9 之间的任何数字。你也可以创建用于验证日期的正则表达式。

然后,我们将此正则表达式存储在 date_regex 变量中。我们将使用存储在 myDate 中的日期来检查日期是否遵循 dd/mm/yy 格式。如果日期遵循此格式,我们将在控制台内打印 Date follows dd/mm/yy format;否则,我们将打印 Invalid date format


在 JavaScript 中使用 Date.parse() 方法验证日期

Data.parse() 是 JavaScript 中已经可用的方法。这个方法只接受一个日期作为单一参数,是一个字符串。

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Document</title>
  </head>
  <body>
    <h1 id="message"></h1>

    <script>
        let isValidDate = Date.parse('03/17/21');

        if (isNaN(isValidDate)) {
          document.getElementById('message').innerHTML = "This is not a valid date format.";
        }
        else{
          document.getElementById('message').innerHTML = "This is a valid date format.";
        }

    </script>
  </body>
</html>

在浏览器中输出:

This is a valid date format.

Data.parse() 函数将根据提供的输入日期返回以毫秒为单位的数字。如果无法识别输入日期,则它将返回 NaN(不是数字)作为输出。该函数的结果存储在 isValidDate 变量中。

如果 isValidDate 变量内的值为 NaN(不是数字),它将返回 false,并且将在屏幕上显示的消息为 This is a not valid date format.。如果返回 true,则将打印消息 This is a valid date format. 在屏幕上作为输出。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Do you understand JavaScript closures?

发布时间:2025/02/21 浏览次数:108 分类:JavaScript

The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.

Do you know about the hidden traps in variables in JavaScript?

发布时间:2025/02/21 浏览次数:178 分类:JavaScript

Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av

How much do you know about the Prototype Chain?

发布时间:2025/02/21 浏览次数:150 分类:JavaScript

The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start

用 jQuery 检查复选框是否被选中

发布时间:2024/03/24 浏览次数:102 分类:JavaScript

在本教程中学习 jQuery 检查复选框是否被选中的所有很酷的方法。我们展示了使用直接 DOM 操作、提取 JavaScript 属性的 jQuery 方法以及使用 jQuery 选择器的不同方法。你还将找到许多有用的

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便