只接受2号及以上号码的正则表达式

时间:2012-11-29 18:45:45

标签: c# asp.net regex

我正在尝试创建一个正则表达式,只允许用户输入值为2或更大的数字(不允许0和1)...

我一直试图将这个推迟一段时间但还没有成功...... 我试过这个例子:

[2-9]|([1-9][0-9]+)

要么从2到9取一个数字,要么输入任何不同于0的数字和至少另一个数字...... 这样,用户无法输入0或1 ......

我不知道那里是否存在语法错误或我该怎么办? 提前谢谢。

2 个答案:

答案 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;
}