我正在尝试创建一个正则表达式,只允许用户输入值为2或更大的数字(不允许0和1)...
我一直试图将这个推迟一段时间但还没有成功...... 我试过这个例子:
[2-9]|([1-9][0-9]+)
要么从2到9取一个数字,要么输入任何不同于0的数字和至少另一个数字...... 这样,用户无法输入0或1 ......
我不知道那里是否存在语法错误或我该怎么办? 提前谢谢。
答案 0 :(得分:3)
我建议您首先使用Int32.TryParse,然后测试您获得的值是否在您想要的范围内。这是一个粗略的想法:
int enteredValue;
if(Int32.TryParse(TextBox1.Text, out enteredValue))
{
if(enteredValue >= 2 )
{
//....
}
}
正则表达式不适用于您要完成的任务。
答案 1 :(得分:1)
我不确定你是否可以在RegEx中真正做到这一点,如果你能做到这一点,你会看到一个非常复杂的RegEx字符串。但为什么要使用RegEx呢?您只需检查该值是否为数字且大于1.在客户端上,您可以使用JavaScript,然后再次在服务器上进行双重检查。这是一个执行此操作的JavaScript函数。如果您愿意,可以在CustomValidator中使用它:
function CheckTwoOrLarger(x)
{
result = false;
if ( isFinite(x) //Check if number
&& parseInt(x) >= 2 //Check if 2 or larger
) result = true;
return result;
}