回答
您的要求轉換爲三至六位數字,首先不是零。我不記得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屬性並自動驗證。 –