Asp.net 正则表达式。匹配1到365之间的任意数字
我们使用正则表达式验证器来验证文本框中的输入 当前正则表达式检查当前数字是否在1到999之间 我们刚刚继承了这段代码,需要将范围从999更改为365。简而言之,我们需要编写一个正则表达式来检查输入是否在1到365之间 当然,我们可以使用RangeValidator或自定义验证器。但我们不想这样做,因为我们不想引入重大变化 谢谢 编辑: 我们还应该抓住以下模式: 001换1Asp.net 正则表达式。匹配1到365之间的任意数字,asp.net,regex,validation,Asp.net,Regex,Validation,我们使用正则表达式验证器来验证文本框中的输入 当前正则表达式检查当前数字是否在1到999之间 我们刚刚继承了这段代码,需要将范围从999更改为365。简而言之,我们需要编写一个正则表达式来检查输入是否在1到365之间 当然,我们可以使用RangeValidator或自定义验证器。但我们不想这样做,因为我们不想引入重大变化 谢谢 编辑: 我们还应该抓住以下模式: 001换1 019 for 19使用正则表达式肯定不是验证整数范围的最佳方法,但您可以这样做: ^([1-9][0-9]?|[12][
019 for 19使用正则表达式肯定不是验证整数范围的最佳方法,但您可以这样做:
^([1-9][0-9]?|[12][0-9][0-9]|3[0-5][0-9]|36[0-5])$
[1-9][0-9]? matches 1 - 99
[12][0-9][0-9] matches 100 - 299
3[0-5][0-9] matches 300 - 359
36[0-5] matches 360 - 365
编辑:前导零也与00000000 321这样的字符串匹配:
^0*([1-9][0-9]?|[12][0-9][0-9]|3[0-5][0-9]|36[0-5])$
注意差距,嗯,闰年- 你真的不想使用正则表达式,你应该使用/^\d{1,3}$/并验证数字为1..365 至于just regex:
SNIP
费迪南德很好:费迪南德的regexp在捕捉前导零方面几乎没有增加:
^([0]{0,2}[1-9]|[0]?[1-9][0-9]|[12][0-9][0-9]|3[0-5][0-9]|36[0-5])$
[0]{0,2}[1-9] - catches 001, 01, 1...
[0]?[1-9][0-9] - catches 010, 10...
注意,它不捕捉0234或0019+1。。。嗯,1-365可能是任何东西,真的。为什么你认为这是一年中的几天-365似乎是一个相当随机的数字,它不是一个正常年份的天数…这包括一位数吗?当然。[1-9][0-9]? 覆盖1-99。这是100以上的失败:@兰:我忘了用偏执狂。请使用更新的模式再试一次–它现在应该可以工作了!这是一种更合理的方法。这并不是一个真正的问题,因为文本框只允许3个字符: