我有一个文本框请求有一系列值我正在使用模式^(\d{1,3})\-(\d{1,3})$
,这似乎有效。
在添加现在他们想要:
由0 to 20
限制的正2位数字
或
正2位数范围(01-20 or 1-3 or 1-03 or 01-4 and so on)
我正在使用^\d{2}([\-]\d{2})?$
,但我不知道如何施加0到20的限制
使用C#ASP.Net RegularExpressionValidator。
提前致谢
答案 0 :(得分:2)
pattern1 ^(20|[10]?\d)$
可以匹配0-20
pattern2 ^(20|[10]?\d)(?:-(20|[10]?\d))?$
可以匹配“0-20”,“1-20”,“2-20”......“20-20”或0到20
但坏消息是pattern2会匹配像“5-1”,“20-3”
这样的字符串对于这个问题,银弹不存在,你需要编写一些代码来检查范围(从组1和组2中获取字符串,将它们转换为整数进行比较)。
答案 1 :(得分:0)
对于20的限制,你必须分别做数字。确保它是20或第一个数字是0-1,第二个数字是0-9。
即。 20 | ([0-1]?[0-9])
编辑:所以整件事应该是^\d{2}([-](20 | ([0-1]?[0-9])))?$
。
答案 2 :(得分:0)
试试这个:([01]?\ d | 2 \ d)。
这可能会做你想要的。