`
lbyzx123
  • 浏览: 478038 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

正则表达式验证时间闰年问题

 
阅读更多

如果单纯用正则的话,去掉第一个/和最后的/ig

简单的日期格式验证:

/^([1-2]\d{3})[\/|\-](0?[1-9]|10|11|12)[\/|\-]([1-2]?[0-9]|0[1-9]|30|31)$/ig


下面的正则式不仅仅匹配了日期格式,而且对日期的逻辑做了严格要求,判断了大月31天,小月30天,2月28,闰年情况2月29天

/((^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(10|12|0?[13578])([-\/\._])(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(11|0?[469])([-\/\._])(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(0?2)([-\/\._])(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)([-\/\._])(0?2)([-\/\._])(29)$)|(^([3579][26]00)([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][0][48])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][0][48])([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][13579][26])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][13579][26])([-\/\._])(0?2)([-\/\._])(29)$))/ig

 

 

使用实例:

 <script>
String.prototype.IsDate=function(){  
        var regexp =/((^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(10|12|0?[13578])([-\/\._])(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(11|0?[469])([-\/\._])(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(0?2)([-\/\._])(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)([-\/\._])(0?2)([-\/\._])(29)$)|(^([3579][26]00)([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][0][48])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][0][48])([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][13579][26])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][13579][26])([-\/\._])(0?2)([-\/\._])(29)$))/ig;
 return regexp.test(this);
}
var strDate ="2012-02-29";
alert(strDate.IsDate());
if(strDate.IsDate())
  alert("这是一个正确的日期格式");
else
  alert("日期格式错误");
</script>

 

 

 

 

分享到:
评论

相关推荐

    java代码验证日期格式正则表达式(包含闰年验证)带注释

    * @param 日期验证,验证的格式有: * "yyyyMM","yyyyMMdd","yyyyMMdd HH:mm:ss", * "yyyy-MM","yyyy-MM-dd","yyyy-MM-dd HH:mm:ss" * "yyyy.MM","yyyy.MM.dd","yyyy.MM.dd HH:mm:ss" * "yyyy/MM","yyyy/MM/dd...

    日期正则表达式(很实用)

    日期格式验证是正则表达式常见应用场景之一,尤其是在表单验证、数据清洗等领域。本文将详细介绍几种常用的日期正则表达式及其原理。 #### 二、简单日期格式验证 ##### 1. YYYY/MM/DD 格式的日期验证 最基础的...

    正则表达式(日期校验)

    本文将详细介绍如何使用正则表达式来验证日期格式,并通过两个具体的示例来展示其用法。 #### 二、基础知识回顾 在深入了解具体实现之前,我们先简要回顾一下正则表达式的相关概念以及JavaScript中的日期对象。 #...

    正则表达式时间验证

    ### 正则表达式时间验证 #### 概述 在软件开发过程中,验证用户输入的有效性是一项非常重要的任务。特别是对于日期与时间这类格式固定的输入,利用正则表达式进行验证能够极大地提高效率并减少错误的发生。本篇将...

    验证日期正则表达式推导方法

    为了解决这个问题,可以使用更复杂的正则表达式,结合闰年条件: ```regex ^(19|20)([02468][048]|[13579][26])\d{2}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|(0?2-(0?[1-9]|[12][0-9])))|(19|20)([13579][02468]|[2468...

    正则表达式验证日期格式

    ### 正则表达式验证日期格式 #### 概述 正则表达式是文本处理领域的一种强大工具,它能够帮助开发者高效地进行字符串的搜索、替换等操作。在实际应用中,经常需要验证用户输入的日期格式是否正确,这就需要用到...

    C# 最全的日期正则表达式,没有之一

    如果需要验证日期时间格式`yyyy-MM-dd HH:mm:ss`,可以添加时间部分的正则表达式: - `([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]`。 - 整合后的完整正则表达式为: - `^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-...

    日期验证的正则表达式很好用

    ### 日期验证的正则表达式详解 在软件开发中,日期格式的验证是一项常见的需求。本文将深入探讨一种用于验证“YYYY-MM-DD”格式日期的正则表达式,并通过C#语言的具体实现来解析其背后的逻辑和技术要点。 #### 一...

    验证日期的正则表达式比较全面地验证

    ### 二、正则表达式验证日期的通用规则 正则表达式用于验证日期的关键在于正确构建表达式以覆盖所有可能的合法日期格式。以下是一些通用的规则: 1. **年份验证**:由于年份范围从公元0001年至9999年,因此年份的...

    日期时间的正则表达式

    日期时间的正则表达式在编程中扮演着重要的角色,特别是在数据验证、格式化和解析等方面。在VB.NET中,正则表达式是通过System.Text.RegularExpressions命名空间中的Regex类来实现的。本篇将深入探讨如何使用VB.NET...

    校验时间的正则表达式

    本文详细介绍了如何使用正则表达式来校验“yyyy-mm-dd HH:MM:SS”格式的时间字符串,并考虑到了闰年的特殊情况。这种技巧在数据验证和格式化场景下非常有用,可以帮助开发者提高代码的健壮性和用户体验。

    日期正则表达式

    日期正则表达式是一种常用的验证日期格式和闰年的方式。在 Winform 和 Webform 中,日期选择和校验通常使用日历控件实现,而日期正则表达式则用于验证日期的格式和闰年。 日期正则表达式的书写需要根据具体情况具体...

    时间正则表达式.txt

    时间正则表达式主要用于验证日期和时间是否符合某种特定的格式。例如,我们可能需要验证一个字符串是否代表了一个合法的日期(如“2023-04-05”),或者一个完整的日期时间(如“2023-04-05 12:34:56”)。这些...

    j2ee的一些正则表达式.doc

    在Java的J2EE开发中,正则表达式是一种强大的工具,用于验证用户输入的数据格式是否符合特定规则。以下是一些常见的正则表达式及其用途: 1. `^[0-9]{1,20}$`:这个正则表达式用于校验一个字符串是否全由数字组成,...

    正则表达式验证邮箱、IP地址、手机号码

    ### 一、正则表达式验证IP地址 #### 1. 正则表达式规则: 在Java中验证IP地址时,我们通常使用如下的正则表达式: ```java Pattern pattern = Pattern.compile("\\b((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\...

    时间验证正则表达式

    下面是一段 C# 代码示例,演示如何使用正则表达式验证时间字符串: ```csharp string reg = @"^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]((((0?[13578])|(1[02]))[\-\/\s]((0?[1-9])|([1-2][0-9])|(3[01])))|...

    匹配日期的正则表达式

    此正则表达式覆盖了从1800年至今的所有日期格式,包括闰年和平年的处理,支持多种分隔符和时间格式,是非常全面且实用的日期匹配工具。通过本篇文章的解析,我们可以更好地理解和运用正则表达式来解决实际问题中的...

    日期正则表达式解决斤斤计较斤斤计较

    这段代码定义了一个正则表达式验证器,用于验证用户输入的日期是否符合上述的日期格式规则。如果不符合,则显示错误消息。 ### 五、总结 日期正则表达式是一种重要的数据验证手段,广泛应用于Web开发、数据清洗等多...

Global site tag (gtag.js) - Google Analytics