1

我要求一个文本框具有一系列值,我正在使用该模式^(\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。

提前致谢

4

3 回答 3

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 中获取字符串,将它们转换为整数进行比较)。

于 2012-07-31T19:20:35.930 回答
0

对于 20 位的限制,您必须单独计算数字。确保它是 20 或第一个数字是 0-1,第二个是 0-9。

IE20 | ([0-1]?[0-9])

编辑:所以整个事情应该是^\d{2}([-](20 | ([0-1]?[0-9])))?$.

于 2012-07-31T18:05:24.653 回答
0

试试这个:([01]?\d|2\d)。

这可能会满足您的需求。

于 2012-07-31T18:12:23.640 回答