开发者

Regex for Date in format dd.MM.yyyy?

Trying to create a regex for Date in this format dd.MM.yyyy.

I want to use it with a DataAnnotation, like this

[RegularExpression(@"<t开发者_C百科heregex>")]
public DateTime Date { get; set; }


I suggest that regex is not exactly the best way to do this. You haven't given the context, so it's hard to guess what you're doing overall... but you might want to create a DateExpression attribute or such and then do:

return DateTime.ParseExact(value, "dd.MM.yyyy");

in wherever your converter is defined.


^(0[1-9]|[12][0-9]|3[01])[.](0[1-9]|1[012])[.](19|20)[0-9]{2}$

This regex matches 01.01.1900, 01.01.2000 but doesn't match 1.1.2000 or 1/1/00.


[0-3]{0,1}[0-9]\.[0-1]{0,1}[0-9]\.[0-9]{4,2}

matches: 28.2.96, 1.11.2008 and 12.10.2005


Just because I always find this site useful, here is an online regex checker. On the right hand side it also has examples and community contributions. In there are a number of Date matching regex variations.

You can type in a load of dates you wish to match and try some of the different examples if you're not sure which is best for you. As with anything, there are multiple ways to solve the problem, but it might help you choose the one that fits best.


^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$ 

This one also accepts - and / as separators. You can remove them if you want.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜