regex - 这个 (mm-dd-yyyy) 正则表达式有什么问题?

标签 regex date

我正在尝试验证 mm-dd-(2012~2099) 日期格式。

我有以下正则表达式。

^(0[1-9]|1[0-2])-(0[1-9]|[10-31])-(20[12-99])$

当我运行以下代码时,我得到错误。这个正则表达式有什么问题?

var reg = new RegExp("^(0[1-9]|1[0-2])-(0[1-9]|[10-31])-(20[12-99])$")
reg.test("05-33-2012")**

当我取出年份部分,然后测试“05-33”时,它起作用了。

最佳答案

正如奥利所说,[12-99] 并没有做你认为它会做的事情。

具体来说,- 指的是一系列字符,而不是数字。所以 [12-99] 匹配...

1
2-9
9

表达式 20(1[2-9]|[2-9][0-9]) 适用于日期 2012-2099

关于regex - 这个 (mm-dd-yyyy) 正则表达式有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11125623/

相关文章:

Javascript: moment().startOf ('quarter' ) 被窃听?

PHP MySQL curdate() 函数

regex - htaccess url 重新设计图像 url 以使其对 seo 友好

regex - 如何以尽可能少的开销将 c 中的所有函数内容与正则表达式匹配

数据库 vs 平面文件,对于 "regex"匹配许多同时请求,这是一种更快的结构

c# - 如何使用正则表达式在 <span> 和 </span> 以及 </span> 和 <span> 之间创建任何内容的数组?

Java 正则表达式 : Word Boundary Matcher in a String Literal

javascript - 如何用 moment.js 改变时间?

javascript 显示与 php 不同的日期

sql - 获取开始日期和结束日期 - 从给定年份 yyyy 开始