如何使用 jquery 验证这种格式 (yyyy-mm-dd) 的日期?

2024-06-07

我正在尝试验证以下格式的日期:(yyyy-mm-dd)。我找到了这个解决方案,但它的格式不符合我的需要,如:(mm/dd/yyyy)。

这是该解决方案的链接:http://jsfiddle.net/ravi1989/EywSP/848/ http://jsfiddle.net/ravi1989/EywSP/848/

我的代码如下:

function isDate(txtDate)
{
    var currVal = txtDate;
    if(currVal == '')
        return false;

    var rxDatePattern = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/; //Declare Regex
    var dtArray = currVal.match(rxDatePattern); // is format OK?

    if (dtArray == null) 
        return false;

    //Checks for mm/dd/yyyy format.
    dtMonth = dtArray[1];
    dtDay= dtArray[3];
    dtYear = dtArray[5];        

    if (dtMonth < 1 || dtMonth > 12) 
        return false;
    else if (dtDay < 1 || dtDay> 31) 
        return false;
    else if ((dtMonth==4 || dtMonth==6 || dtMonth==9 || dtMonth==11) && dtDay ==31) 
        return false;
    else if (dtMonth == 2) 
    {
        var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));
        if (dtDay> 29 || (dtDay ==29 && !isleap)) 
                return false;
    }
    return true;
}

我可以使用什么正则表达式模式来解决无效日期和闰年问题?


我对上面发布的 Thorbin 的 isValidDate 函数进行了稍微扩展(使用正则表达式)。我们使用正则表达式来检查格式(以防止我们获得对日期有效的另一种格式)。在这个宽松的检查之后,我们实际上通过 Date 构造函数运行它,如果它在此格式中有效,则返回 true 或 false。如果它不是有效日期,我们将从该函数得到 false。

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


/* Example Uses */
console.log(isValidDate("0000-00-00"));  // false
console.log(isValidDate("2015-01-40"));  // false
console.log(isValidDate("2016-11-25"));  // true
console.log(isValidDate("1970-01-01"));  // true = epoch
console.log(isValidDate("2016-02-29"));  // true = leap day
console.log(isValidDate("2013-02-29"));  // false = not leap day
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 jquery 验证这种格式 (yyyy-mm-dd) 的日期? 的相关文章

随机推荐

  • R 下与 Julia 的密切联系

    In my R代码 我使用MixedModels Julia包裹 我整合Julia in R使用JuliaCall包裹 我使用非常大的数据集 1 GB 4x10 6观察 和建模步骤 mixed models 分配了大量 RAM 80 GB
  • 如何在 UIImagePickerController 捕获图像的瞬间获取当前位置?

    我研究了如何从返回的图像中获取位置数据UIImagePickerController相机 但是 我认为最简单的方法是获取当前位置CLLocationManager此刻UIImagePickerController捕获图像 有办法做到这一点吗
  • 由于底部导航栏和标签栏导致底部溢出

    override Widget build BuildContext context super build context SystemChrome setEnabledSystemUIOverlays SystemUiOverlay v
  • 动画 D3 地球仪 (d3.geo.azimuthal)

    我对 d3 javascript 库有疑问 我想使用方位角 http mbostock github com d3 talk 20111018 azimuthal html地球 我想从地球上的经度和纬度坐标插入点 并使地球动画化 而无需使用
  • rle 命令帮助

    我在使用 rle 命令时遇到了一些麻烦 该命令旨在找到参与者连续达到 8 个连续参与者的点 例如 如果 x lt c 0 1 0 1 1 1 1 1 1 1 1 1 我想返回值 11 感谢 DWin 我一直在使用这段代码 which rle
  • 努力在 AngularDart 中实现选项卡

    我正在尝试学习 Dart 和 AngularDart 最初一切都很好 直到我决定尝试基于类似于 Angular 主页的示例实现选项卡组件 例如
  • 如何在android上使用离线包来反应本机项目?

    如何在 Android 上使用离线捆绑包 我没有看到关于在 android 上使用离线捆绑包的文档 我尝试取消注释 build gradle 中的代码 project ext react the name of the generated
  • Three.js、自定义着色器和具有透明度的 png 纹理

    我有一个非常简单的 PNG 纹理 一个带有透明背景的灰色圆圈 我用它作为制服map for a THREE ShaderMaterial var uniforms THREE UniformsUtils merge basicShader
  • 如何在 Netbeans 9 中打开 Grails 3.3 应用程序?

    我无法找到在 Mac 上的 netbeans 9 中打开 grails 3 3 8 项目的方法 我找到了几篇文章 见下文 但没有一个起作用 This one https grails org wiki version NetBeans 20
  • Angular2 和 lodash...找不到名称

    Angular2 和 lodash 为什么有这么多戏剧性的事情 我的意思是真的 下面是我的安装方法 npm install save lodash npm install save types lodash UPDATE 我按照博客做了这个
  • 如何格式化 Pandas 中的日期列?

    我有一个数据框df看起来像这样 ID Date 0 1 2008 01 24 1 2 2007 02 17 格式为Date is Y m d 如何将日期格式化为 m d Y format 我尝试使用此语法 但它没有给出正确的格式 df Da
  • 如何在 Macbook M1 Silicon 上正确安装 CocoaPods

    我正在尝试在配备 M1 芯片的新 MacBook Pro 上安装 Cocoa Pods 从12月份开始就找到了一些解决方案 由于是二月份 这些解决方案可能有点过时了 我在 CocoaPods 网站上找不到任何说明 有人能帮我解决这件事吗 我
  • Matlab - 如果值包含xxx,则删除元胞数组中的行

    在 Matlab 中 如何删除包含变量字符串的元胞数组中的元胞 假设我的元胞数组是 C svnTrunk RadarLib radarlb utilities scatteredInterpolant m C svnTrunk RadarL
  • java中类级锁是如何实现的?

    我知道锁定概念与同步静态和非静态方法分别锁定类和实例 我无法理解的是 类级锁是如何实现的 我的意思是 类只是一个模板 没有物理意义 那么 当我们说类级锁定是通过同步静态方法来实现时 会发生什么呢 该类的所有对象是否都被锁定或被其他进程锁定
  • 更改从 xib 加载的 UITableViewHeaderFooterView 上的背景颜色表示使用 contentView.backgroundColor

    I m 从 xib 文件创建 UITableViewHeaderFooterView https stackoverflow com a 20073742 35690 几乎一切都工作正常 问题是 现在当我尝试更改背景颜色 或者如果我在 xi
  • 使用回退异步加载 jquery 核心

    通过标头中的性能优化和非阻塞脚本 我一直在尝试异步加载 jquery 本身 我遇到了一个jQuery 加载器 http www yterium net jQl an asynchronous jQuery Loader脚本 那个async加
  • 是否可以在 Objective-C 中创建自定义指令?

    Objective C 有如下指令 界面 执行 end 协议 财产 合成 我认为这些东西就像复杂的宏或代码生成器 是否可以创建用于代码生成目的的自定义指令 一种可能的用途是为 CoreData 生成方法 我想不是 因为我从来没有见过任何东西
  • 无法完成 Git Rebase

    我目前正在一个分支上工作 想用 master 来更新它 所以我尝试做一个变基 我正在处理的当前分支 crtdev 我尝试做变基 git checkout crtdev git rebase master used diff mergetoo
  • ios UICollectionView - 设置自动高度

    我正在使用 UICollection 视图创建 3x4 按钮矩阵 iPhone4很好看 高度也比较小 此外 集合视图不会滚动 因为它在可用空间中显示 3x4 矩阵按钮 现在 当我在 iPhone5 上运行相同的应用程序时 我看到底部按钮矩阵
  • 如何使用 jquery 验证这种格式 (yyyy-mm-dd) 的日期?

    我正在尝试验证以下格式的日期 yyyy mm dd 我找到了这个解决方案 但它的格式不符合我的需要 如 mm dd yyyy 这是该解决方案的链接 http jsfiddle net ravi1989 EywSP 848 http jsfi