我们正在使用RegEx Validator验证文本框中的输入。
当前的RegEx表达式检查当前数字是否介于1 - 999之间。
我们刚刚继承了这段代码,我们需要将范围从999更改为365.简而言之,我们需要编写一个正则表达式来检查输入是否介于1 - 365之间。
当然,我们可以使用RangeValidator或自定义验证器。但我们不想这样做,因为我们不想引入“重大”变化。
谢谢!
编辑:
我们还应该抓住以下模式: 001为1 019表示19
答案 0 :(得分:12)
使用正则表达式肯定不是验证整数范围的最佳方法,但是在这里:
^([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
编辑:使用前导零(也匹配00000000321等字符串):
^0*([1-9][0-9]?|[12][0-9][0-9]|3[0-5][0-9]|36[0-5])$
答案 1 :(得分:5)
注意差距,嗯闰年。 : - )
答案 2 :(得分:2)
你真的不想使用正则表达式,你应该只使用/ ^ \ d {1,3} $ /并将数字验证为1..365
至于正则表达式:
SNIP
费迪南德很好:)
答案 3 :(得分:1)
Ferdinand用于捕捉领先零的正则表达式的一点点补充:
^([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