0

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

我已经尝试了很长一段时间没有成功......我已经尝试过这个,例如:

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

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

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

4

2 回答 2

3

我建议你先 Int32.TryParse 然后测试你得到的值是否在你想要的范围内。这是一个粗略的想法:

int enteredValue;

if(Int32.TryParse(TextBox1.Text, out enteredValue))
{
    if(enteredValue >= 2 )
    {
       //....
    }
}

正则表达式不适用于您要完成的任务。

于 2012-11-29T18:53:13.013 回答
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;
}
于 2012-11-29T19:11:57.773 回答