我正在尝试制作一个仅允许用户输入值为 2 或更大的数字的正则表达式(不允许使用 0 和 1)...
我已经尝试了很长一段时间没有成功......我已经尝试过这个,例如:
[2-9]|([1-9][0-9]+)
要么你取一个从 2 到 9 的数字,要么你输入任何不同于 0 的数字和至少另一个数字......这样用户就无法输入 0 或 1......
我不知道那里是否有语法错误或我该怎么办?提前致谢。
我建议你先 Int32.TryParse 然后测试你得到的值是否在你想要的范围内。这是一个粗略的想法:
int enteredValue;
if(Int32.TryParse(TextBox1.Text, out enteredValue))
{
if(enteredValue >= 2 )
{
//....
}
}
正则表达式不适用于您要完成的任务。
我不确定你是否真的可以在 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;
}