asp:RegularExpressionValidator 的正则表达式,格式为 MMddyy(闰年问题)

2023-12-01

我们需要与 asp.net asp:RegularExpressionValidator 配合使用的正则表达式帮助来验证 MMddyy 格式的日期。我们面临的问题是闰年。问题是,是否可以通过正则表达式验证它只接受有效的闰年日期,例如 02/29/2008 是有效日期,但 02/29/2010 不是有效日期。

任何与“asp:RegularExpressionValidator”一起使用的正则表达式?


好的,您要求一个正则表达式。这里是。我认为很明显为什么用正则表达式验证日期不是一个好主意:

首先,详细的、带注释的版本至少使理解这个野兽成为可能:

^       # start of string
(?:     # either match...
 (?:
  (?:   # 31st day of all allowed months
   (?:(?:0?[13578]|1[02])/31)
   |    # or
   (?:(?:0?[13-9]|1[0-2])/(?:29|30))
  )     # 29th/30th day of any month except February
  /     # plus any year since 1600
  (?:1[6-9]|[2-9]\d)
  \d{2}
 )
|       # or
 (?:    # match Feb 29th
  0?2/29/
  (?:   # in all leap years since 1600
   (?:
    (?: # century
     1[6-9]|[2-9]\d
    )
    (?: # two-digit years divisible by four, not ending in 00
     0[48]
     |
     [2468][048]
     |
     [13579][26]
    )
    |
    (?: # all the leap years ending in 00
     (?:16|[2468][048]|[3579][26])
    00
    )
   )
  )
 )
|       # or
 (?:    # (for any month)
  (?:0?[1-9])
  |
  (?:1[0-2])
 )
 /
 (?:    # match the 1st-28th day
  0?[1-9]|1\d|2[0-8]
 )
 /
 (?:
  (?:1[6-9]|[2-9]\d)\d{2}
 )
)$

或者,如果您无法在 ASP.NET 验证器中使用详细的正则表达式:

^(?:^(?:(?:(?:(?:(?:0?[13578]|1[02])/31)|(?:(?:0?[13-9]|1[0-2])/(?:29|30)))/(?:1[6-9]|[2-9]\d)\d{2})|(?:0?2/29/(?:(?:(?:1[6-9]|[2-9]\d)(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))/(?:0?[1-9]|1\d|2[0-8])/(?:(?:1[6-9]|[2-9]\d)\d{2}))$)$

这些允许但不要求单位数月/日中有前导零。如果您不想这样做,请替换所有实例0? with 0.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

asp:RegularExpressionValidator 的正则表达式,格式为 MMddyy(闰年问题) 的相关文章

随机推荐

  • 如何通过改变CSS来实现这样的滚动div?

    This site左侧有一个滚动 div 当您滚动页面时 div 也会有节奏地滚动 并且图像的颜色也会发生变化 position fixed还不是全部都能做到 那什么是技术呢 EDIT position fixed我可以用它来将 div 固
  • 为什么 Spring Security 中永远不会触发事件 AbstractAuthenticationFailureEvent ?

    我使用 spring 4 0 2 RELEASE 和 spring security 3 2 5 RELEASE 我使用它是因为当我开始我的项目 spring security 4 0 0 时它位于快照中 我尝试过 spring 4 2 0
  • 如何按空格分割字符串

    我需要用空格分割字符串 为此我尝试过 str Hello I m your String String splited str split 但这似乎不起作用 你所拥有的应该有效 但是 如果提供的空间默认为 其他内容 您可以使用空白正则表达式
  • R:4D 绘图、x、y、z、颜色

    你能给我一个关于如何使用 rgl 在 x y 和 z 轴上绘制 3 个变量以及使用不同颜色绘制第四个变量的示例吗 thanks 您使用以下组合persp和颜色根据单独的功能 这是一些示例代码 Create a simple surface
  • Java 桌面应用程序的内存分析

    我的应用程序加载了大约的数据集 每次 85bm 至 100mb 应用程序的内存限制设置为 512mb 理论上来说 这已经足够了 然而 我发现 如果在应用程序的单次运行中 我打开和关闭数据集 5 次 总内存消耗会稳步增加 直到出现内存不足错误
  • 保存登录详细信息(首选项)android

    我有一个带有登录 注销功能的Android应用程序 登录表单包含用户名和密码以及登录按钮 我想在用户选中 记住我 复选框时保存用户名和密码 我的project java文件如下所示 public class project extends
  • REACT- DOM 突变警告含义

    违规 向 DOMNodeInserted 事件添加了同步 DOM 突变侦听器 考虑使用 MutationObserver 来使页面响应更快 关于此警告还有另一个问题 我已经在那里回答了解决该问题的方法 这不是这个问题的原因 对于那些想知道的
  • 如何与我的应用程序共享选定的文本?

    我想让我的应用程序出现在 UIActivityViewController 中以进行文本共享 例如邮件 iMessage Notes Gmail 等 例如 当用户点击所选文本并从任何应用程序中点击 共享 按钮 如附件中所示 时 我希望我的应
  • 占位符混合 SCSS/CSS

    我正在尝试为 sass 中的占位符创建一个混合 这是我创建的 mixin mixin placeholder css webkit input placeholder css moz placeholder css moz placehol
  • REGEX 查找特定子字符串(如果不是单词的一部分)

    我在简化我创建的正则表达式时遇到了麻烦 sept a zA Z sept a zA Z a zA Z sept sept a zA Z 该正则表达式必须找到子字符串sept 这不是任何单词的一部分 例如 september 当应该找到单词时
  • 如何在 Python 中将数组数组转换为多维数组?

    我有一个 NumPy 数组 长度为 X 所有数组都具有相同的长度 Y 但其类型为 对象 因此具有维度 X 我想将其 转换 为具有成员数组元素类型 float 的维度 X Y 数组 我能看到做到这一点的唯一方法是 手动 使用类似的东西 x f
  • 气氛/泽西岛双向对话

    我见过许多 Atmosphere 示例 包括 pub sub 我想做类似 pub sub 的事情 客户端订阅该客户端唯一的通道 服务器定期发布到该通道 只不过客户端也会将数据发送到服务器 客户端将发送数据以响应服务器发送的数据 以及在其他情
  • 如何以编程方式从 Android 中的 .vcf 文件导入或插入联系人?

    我创造 vcf使用以下代码保存 Android 中所有联系人的文件 public static void getVCF final String vfile POContactsRestore vcf Cursor phones mCont
  • Tomcat SSL:无法找到请求目标的有效证书路径

    我正在尝试访问应用程序中的网址 但收到此错误 1771426 http bio 8180 exec 15 ERROR gadget GadgetValidatorServlet wsdl exception WSInvokerExcepti
  • 禁用自动更正 UITextView

    有谁知道如何禁用 uitextview 中的自动更正编程 我有以下代码 但它不起作用 void setUpTextView self textView UITextView alloc initWithFrame self bounds s
  • order() 的结果应用于 data.frame 与 data.table 时有所不同

    如果我使用 我会得到不同的结果order in data frame and data table 例如 A lt data frame one c k two c 3 28 31 60 48 68 B lt as data table A
  • 派生类型声明中的错误:此上下文中 (1) 处的变量必须是常量

    我在模块中声明了一个派生类型 如下所示 MODULE dmotifs TYPE PRM INTEGER PRIVATE nsp 4 nrx 8 maxprx 4 REAL PRIVATE cref 1e 6 tref 1 REAL DIME
  • GET 进程 CPU 使用情况

    我如何获取c中进程的CPU使用情况 我需要每个进程和线程的 CPU 使用情况 请举个例子 Thanks 在普通 C 中 这是不可能的 但由于问题也被标记为 Windows CPU 使用率是 CPU 时间除以实时时间 这获取线程时间 and
  • 分析每个类的垃圾收集对象实例的数量

    我正在寻找一个可以提供有关活动对象的类似 VisuaVM 分析的工具 但在非 GUI 模式下 我所指的 Visual VM 功能可通过转到 Profiler 选项卡并单击 内存 来访问 通过为曾经 1 个对象 所有对象 设置 配置文件对象分
  • asp:RegularExpressionValidator 的正则表达式,格式为 MMddyy(闰年问题)

    我们需要与 asp net asp RegularExpressionValidator 配合使用的正则表达式帮助来验证 MMddyy 格式的日期 我们面临的问题是闰年 问题是 是否可以通过正则表达式验证它只接受有效的闰年日期 例如 02