首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegEx匹配M/YY、MM/YY、M/YY或MM/YY格式

RegEx匹配M/YY、MM/YY、M/YY或MM/YY格式
EN

Stack Overflow用户
提问于 2010-10-15 17:04:15
回答 4查看 31.4K关注 0票数 11

需要帮助查找或具有MM/YY或MM/YYYY格式的RegEx匹配。我的RegExFu很弱,我甚至不知道从哪里开始写这篇文章。

月份应该是1-12年,年份很长,2009年以后的任何事情都应该有效。很抱歉之前没有提到更多的细节。此值用作过期日期。

我将为任何超越和验证MM/YY或MM/YYYY格式(即今天的日期)的人添加一个赏金。没有意义的让过期的东西通过第一个验证层。

我感到很遗憾,因为我改变了我的要求,必须更具体地在我需要的中间问题,所以我将奖励给所有谁回答,一旦不赏金窗口到期。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-15 17:12:32

关于

代码语言:javascript
复制
^(1[0-2]|0[1-9]|\d)\/(20\d{2}|19\d{2}|0(?!0)\d|[1-9]\d)$

火柴月

代码语言:javascript
复制
// 10 to 12 | 01 to 09 | 1 to 9
(1[0-2]|0[1-9]|\d)

和岁月

代码语言:javascript
复制
// 2000 to 2099 | 1900 to 1999
// 01 to 09 | 10 to 99
(20\d{2}|19\d{2}|0(?!0)\d|[1-9]\d)

与任何>= 2010相匹配

代码语言:javascript
复制
/^(1[0-2]|0[1-9]|\d)\/([2-9]\d[1-9]\d|[1-9]\d)$/;

结果:

代码语言:javascript
复制
12/2009 : false
1/2010  : true
12/2011 : true
12/9011 : true
12/07   : false
12/17   : true
票数 16
EN

Stack Overflow用户

发布于 2010-10-15 17:08:48

试试这个:

代码语言:javascript
复制
^(0?[1-9]|1[0-2])/(19|2[0-1])?\d{2}$

限制为1和2位数的月份(01-12,1-12)和2和4年(00-99,1900-2199)。

票数 6
EN

Stack Overflow用户

发布于 2010-10-15 17:09:57

尝试:

代码语言:javascript
复制
var re = new Regex(@"(?<month>\d{2})/(?<year>\d{2}|\d{4})");
var month = re.Match(yourString).Groups["month"];
...

另一种选择是:

代码语言:javascript
复制
if(dateStr.Length == 5)
    myDateTime = DateTime.ParseExact("MM/YY", dateStr);
else
    myDateTime = DateTime.ParseExact("MM/YYYY", dateStr);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3944446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档