2015-03-31 83 views
0

我想建立一些正則表達式來驗證c#wpf上的文本框。我建立以下以驗證數字從6到3600:15-250正則表達式驗證

^([6-9]|[1-9][0-9]{1,2}|[12][0-9]{3}|3[0-5][0-9]{2}|3600)$ 

現在我需要從15到250,我對新的正則表達式來驗證,我有一個很難得到它。

感謝

+6

爲什麼不直接使用'int.TryParse'並檢查整數? – axblount 2015-03-31 18:12:41

+1

正則表達式不用於此! – 2015-03-31 18:12:53

+1

數字上傳會更好。 – dotNET 2015-03-31 18:14:50

回答

2

直接翻譯過來應該是:

^(1[5-9]|[2-9][0-9]|1[0-9]{2}|2[0-4][0-9]|250)$ 

分手是1[5-9]或15-19,[2-9][0-9]或20-99,1[0-9]{2}或200-199,2[0-4][0-9]或100-249,250

+0

這對我有用!謝謝! – user3614070 2015-03-31 18:35:13

1

你想從6驗證的數量 - 3600,另有15 - 250?爲什麼不把數字轉換爲int並檢查最小和最大?

看看下面的正確實施WPF https://msdn.microsoft.com/en-us/library/ms753962%28v=vs.110%29.aspx

+0

這不是一個答案... – 2015-03-31 18:13:17

+0

同意,但它的答案走在一個不同的方向比使用正則表達式進行數字驗證。 – Marko 2015-03-31 18:14:02

0

這裏確認是Matching Numeric Ranges with a Regular Expression

很好看的正則表達式爲15至250將

^(1[5-9]|[2-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|250)$ 

Regex Demo

+1

該鏈接應該成爲你答案的核心(總結關鍵點,以便答案是獨立的),而不是事後的想法。 – IMSoP 2015-03-31 18:20:41

+0

@IMSoP: - 用正則表達式更新了我的答案! – 2015-03-31 18:25:13

0

以下正則表達式應該滿足15-250範圍內的所有數字。然而,正如我在評論中提醒你,一個的NumericUpDown是這種東西遠遠優於選擇:

\b(2[0-4]\d)|(1\d\d)|(250)|([2-9]\d)|(1[5-9])\b 
+0

dotNet這適用於小於15的值,但對於高於250的值不起作用。 – user3614070 2015-03-31 18:31:38

+0

@ user3614070: - 更新了正則表達式。用正則表達式來檢查我的答案! – 2015-03-31 18:34:08