验证数字范围1300到1500的输入?(使用正则表达式或其他常用方法.)

Abd*_*ziz 1 .net c# regex winforms string-parsing

我想验证用户输入字符串的数字范围是1300到1500.

我试过了 Regex regxUsrInput = new Regex(@"^(?:[1-9]|1|3[0-9]|0[0-9]|0[0-9]|1500)$");

..但这并没有验证我的预期方式.

我愿意接受任何建议,包括替代方案.谢谢

如果重要:我的应用程序是用C#编写的Windows窗体应用程序.用户输入来自标准TextBox控件.

Hos*_*Rad 13

你为什么要用Regex?这个简单的方法怎么样:

int value;
if(int.TryParse(yourTexbox.Text, out value))
{
    if(1300 < value && value < 1500)
    {
        //your code
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我强烈建议在这里使用int.TryParse,据我所知,OP没有提到小数位? (5认同)

Loa*_*oof 7

注意:不要这样做.但这是如何:

^1([34]\d{2}|500)$
Run Code Online (Sandbox Code Playgroud)

  • 这是完全正确的.你永远不应该使用这种方法进行验证也是完全正确的. (2认同)
  • @AbdulAziz:在这种情况下,正则表达式是不必要的.你所拥有的是一个非常简单的问题,可以通过简单的解析和数字比较来解决,并且不需要字符串模式匹配.正则表达式可以说会损害可维护性(当你的最大值变为1675时会发生什么?)并且可能会对性能造成影响(尽管在这种情况下不太可能). (2认同)