我要求一个文本框具有一系列值,我正在使用该模式^(\d{1,3})\-(\d{1,3})$
并且这似乎有效。
另外现在他们想要:一个正的2 位数字,限制在0 to 20
OR
一个正的 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。
提前致谢
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 中获取字符串,将它们转换为整数进行比较)。
对于 20 位的限制,您必须单独计算数字。确保它是 20 或第一个数字是 0-1,第二个是 0-9。
IE20 | ([0-1]?[0-9])
编辑:所以整个事情应该是^\d{2}([-](20 | ([0-1]?[0-9])))?$
.
试试这个:([01]?\d|2\d)。
这可能会满足您的需求。