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.
精彩评论