C# 用于验证程序的正则表达式帮助

C# 用于验证程序的正则表达式帮助,c#,.net,asp.net,regex,C#,.net,Asp.net,Regex,我需要一个正则表达式验证器来验证文本字段是否只包含00-31之间的数字(注意,它应该允许05和5),另一个正则表达式是否包含01-12之间的数字(同样,它应该允许05和5),以及另一个正则表达式是否包含1920-2009之间的数字 我怎样才能做到这一点?00-31案例 "^(0?[0-9])|([1-2][0-9])|(30)|(31))$" 01-12例 "^(0?[1-9])|(10)|(11)|(12)$" 00-31例 "^(0?[0-9])|([1-2][0-9])|(30)|(3

我需要一个正则表达式验证器来验证文本字段是否只包含00-31之间的数字(注意,它应该允许05和5),另一个正则表达式是否包含01-12之间的数字(同样,它应该允许05和5),以及另一个正则表达式是否包含1920-2009之间的数字

我怎样才能做到这一点?

00-31案例

"^(0?[0-9])|([1-2][0-9])|(30)|(31))$"
01-12例

"^(0?[1-9])|(10)|(11)|(12)$"
00-31例

"^(0?[0-9])|([1-2][0-9])|(30)|(31))$"
01-12例

"^(0?[1-9])|(10)|(11)|(12)$"

什么不使用范围验证器并将最小和最大日期与日期数据类型一起放入。 所以minValue=1/1/1920,maxValue=1/12/2009。
您甚至可以使用todays date设置页面加载(无回发检查)的最大值。

什么不使用范围验证程序,并使用日期数据类型输入最小和最大日期。 所以minValue=1/1/1920,maxValue=1/12/2009。 您甚至可以使用今天的日期设置页面加载(无回发检查)的最大值。

1920-2009:

"^(19[2-9][0-9])|(200[0-9])$" or simplier: "^((19[2-9])|(200))([0-9])$"
1920-2009年:

"^(19[2-9][0-9])|(200[0-9])$" or simplier: "^((19[2-9])|(200))([0-9])$"

我很好奇,为什么要用正则表达式来验证日期?你不能把单个值转换成整数,然后用这种方法测试数字范围吗?或者试试DateTime.Parse——如果它抛出FormatException,那就糟糕了?我很好奇,为什么要使用正则表达式来验证日期?你不能把单个值转换成整数,然后用这种方法测试数字范围吗?或者尝试DateTime.Parse-如果它抛出FormatException,那就不好了?您的第二个表达式与11不匹配。@Apottic,将其更改为match11@f0b0s.iu9.info,我没有。我在最初的回答中被驳倒了。你的第二个表达式与11不匹配。@冷漠,将其改为匹配11@f0b0s.iu9.info,我没有。我在最初的回答中被否定了。