1

我很难为 0-15 的数字输入组合一个正则表达式。

我试过这个表达:

^([9]{1,1}|[0-1][0-5])$   

<asp:FilteredTextBoxExtender ID="TMPFiltered" runat="server" FilterMode="ValidChars"
                                                FilterType="Custom" ValidChars^([9]{1,1}|[0-1][0-5])$" TargetControlID="txtTMP" />

但是它允许大于 15 的最大值。我的语法在哪里不正确?任何帮助表示赞赏,谢谢。

4

3 回答 3

5

尝试这个:

^([0]?[1-9]|1[0-5])$

或者如果你不想像“07”那样匹配,试试这个

^([1-9]|1[0-5])$
于 2012-10-29T18:24:27.127 回答
3

正则表达式不是正确的解决方案,您应该尝试将字符串转换为 int,如果成功,请确保结果在您想要的范围内。

话虽这么说,这是一个应该起作用的正则表达式:

^(1[0-5]?|[2-9])$

当前正则表达式的主要问题是锚点仅应用于交替的左侧,因此您将匹配匹配[0-1][0-5]正则表达式中任何位置的字符串。您当前的正则表达式中也没有任何方法可以匹配从 2 到 8 的数字。

示例:http ://www.rubular.com/r/HUNZZymzFW

于 2012-10-29T18:16:22.443 回答
2

你快到了

^([1-9]|1[0-5])$是你需要的

我在您的正则表达式[9]{1,1}中所做的唯一更改为[1-9]..不需要,{1,1}因为它已经匹配了 1 次[9]

于 2012-10-29T18:23:50.683 回答