2

我想使用正则表达式验证文本框中的文本。
文本应该是一个大于 0 且小于等于 1000 的数字。

4

3 回答 3

3

"^[1-9][0-9]*{1,2}$"是您正在寻找的正则表达式。

if(Regex.IsMatch(YourTextBox.Text,"^[1-9][0-9]*{1,2}$"))
{
    //Write your logic here 
}
于 2012-08-01T07:29:52.743 回答
0

我找到了:

^([1-9]|[1-9][0-9]|[1-9][0-9][0-9])$|^(1000)

我在 0~1000 范围内测试它

于 2012-08-10T13:07:41.203 回答
0

试试这个正则表达式:

//for  0 < x < 1000
^((?<=[1-9])0|[1-9]){1,3}$

解释:

(?<=[1-9])0     //look behind to see if there is digits (1-9)

测试:

0 -> 无效
000 -> 无效
45 -> 有效
5 -> 有效的“Ashwin Singh”解决方案无法捕捉到这一点
101 -> 有效
999 -> 有效
1000 -> 无效
12345 -> 无效
10000 -> 无效
2558 -> 无效
205 -> 有效
1001 -> 无效
2000 -> 无效

更好的方法转换为Decimal(如果您不使用正则表达式验证器):

Decimal dc = Decimal.TryParse(textBox.Text);
if( dc > 0 && dc < 1000)
// do some thing
于 2012-08-01T08:06:03.817 回答