回答
您的要求转换为三至六位数字,首先不是零。我不记得C#是否默认了RE,所以我也把它们放入了。
^[1-9][0-9]{2,5}$
用RE以外的东西来表达这个要好得多。 –
我知道这不处理前导零。对于那些用户不是程序员的用户输入,禁止前导零是正确的做法。 –
C#不会固定它们 –
你不需要这个正则表达式。
int n;
if (!int.TryParse(textBox.Text.Trim(), out n) || n<100 || n>999999)
{
// Display error message: Out of range or not a number
}
编辑:如果CF目标,那么你不能使用int.TryParse()
。后备对int.Parse()
代替,然后键入多一点错误醒目代码:
int n;
try
{
int n = int.Parse(textBox.Text.Trim());
if (n<100 || n>999999)
{
// Display error message: Out of range
}
else
{
// OK
}
}
catch(Exception ex)
{
// Display error message: Not a number.
// You may want to catch the individual exception types
// for more info about the error
}
一个简单的方法是使用正则表达式
^[1-9][0-9]{2,5}$
如果你想允许前导零(但仍保持6 - 数位限制)的正则表达式将是
^(?=[0-9]{3,6}$)0*[1-9][0-9]{2,5}
这最后一个可能值得一些解释:首先使用正向前查找[(?=)
]以确保整个输入是3到6位数字,然后确保它由任意数量的前导零组成,后面跟着100-999999范围内的一个数字。
但是,它可能是一个更好的主意,使用更适合任务的东西(也许数字比较?)。
你必须使用正则表达式吗?如何
int result;
if(Int.TryParse(string, out result) && result > 100 && result < 999999) {
//do whatever with result
}
else
{
//invalid input
}
布赖恩,我不能使用int.TryParse(),因为我在Windows Mobile CF应用程序中使用它。 – siva
另一种方法,你可以考虑
[1-9]\d{2,5}
为什么不使用NumericUpDown控制,而不是它可以让你specifiy最小和最大的价值? 而且只会让数字太大,为您节省更多的验证,以确保任何非数字可以输入
从例如:
public void InstantiateMyNumericUpDown()
{
// Create and initialize a NumericUpDown control.
numericUpDown1 = new NumericUpDown();
// Dock the control to the top of the form.
numericUpDown1.Dock = System.Windows.Forms.DockStyle.Top;
// Set the Minimum, Maximum, and initial Value.
numericUpDown1.Value = 100;
numericUpDown1.Maximum = 999999;
numericUpDown1.Minimum = 100;
// Add the NumericUpDown to the Form.
Controls.Add(numericUpDown1);
}
这将做的伎俩:
^[1-9]\d{2,5}$
- 1. JS正则表达式只允许增量为100
- 2. 正则表达式来允许子域
- 3. 这个正则表达式允许“*”吗?
- 4. 正则表达式不允许空格
- 5. 允许使用正则表达式
- 6. 正则表达式允许负值
- 7. 正则表达式,允许数
- 8. 正则表达式不允许零
- 9. 正则表达式帮助 - 需要允许%正则表达式公式
- 10. 正则表达式是不允许“并允许\”
- 11. javascript正则表达式不允许我的表达式
- 12. 正则表达式允许只有数字和数字
- 13. Zend - 正则表达式允许空白和Unicode字符
- 14. Mysql的正则表达式允许数字和'+'
- 15. BNF和EBNF符号是否允许使用正则表达式?
- 16. 正则表达式允许数字和星号
- 17. 正则表达式允许的字符,数字和 - 在JavaScript
- 18. 正则表达式:允许字母和逗号之间只有
- 19. 正则表达式只允许字母和一些字符
- 20. 正则表达式只允许数字,逗号和破折号
- 21. 正则表达式不允许单引号和双引号
- 22. 正则表达式只允许字母和数字
- 23. 正则表达式允许字母和50
- 24. 正则表达式限制特殊字符,只允许DOT和&
- 25. 只允许AI 0-9和符号$#(正则表达式)
- 26. 正则表达式只允许字母,空格和 - 只有
- 27. 正则表达式仅允许数字,破折号和圆点
- 28. 正则表达式不允许字符[和]
- 29. 正则表达式允许数字和单个点
- 30. javascript的正则表达式,只允许数字和逗号
将数字以一个或多个零开始(例如00222)是否有效输入? – Jon
您使用哪种UI技术?其中一些允许在他们的模型上使用Range属性并自动验证。 –