[英]Regular expression to match numbers between 1-5000
我想使用正则表达式的文本框,只允许1-5000之间的数字
我尝试了以下但它不会工作:
@"/^(?:1|5000|-[1-9]\d?)$/
你可以使用^(?:[1-9]|\\d{2,3}|[1-4]\\d{3}|5000)$
。 但是你最好解析为Int然后做简单的数学运算。
通过预先进行一些解析,您可以使正则表达式变得非常简单:
string s = textBox1.Text;
string r = "";
int n = 0;
if (int.TryParse(s, out n) && (n>=1 && n<=5000))
{
r = "y";
}
if (Regex.IsMatch(r, "y")) {
// input was valid
MessageBox.Show("OK");
}
试试......
^(?:[1-4] [0-9] {1,3} | [1-9] [0-9] {0,2} | 5000)$
您可以执行以下操作:
^(([1-4][0-9]{0,3})|([1-9][0-9]{0,2})|(5000))$
前两组将匹配1 - 4999范围内的任何内容。最后添加| 5000使其匹配范围1 - 5000.这里的三种情况是:
话虽如此,我认为解析int并查看它是否在范围内可能更简单。
你可以试试这样的东西(0-366)
^(0?[0-9]?[0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-6])$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.