Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 正则表达式。匹配1到365之间的任意数字_Asp.net_Regex_Validation - Fatal编程技术网

Asp.net 正则表达式。匹配1到365之间的任意数字

Asp.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][

我们使用正则表达式验证器来验证文本框中的输入

当前正则表达式检查当前数字是否在1到999之间

我们刚刚继承了这段代码,需要将范围从999更改为365。简而言之,我们需要编写一个正则表达式来检查输入是否在1到365之间

当然,我们可以使用RangeValidator或自定义验证器。但我们不想这样做,因为我们不想引入重大变化

谢谢

编辑:

我们还应该抓住以下模式: 001换1
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个字符: