2013-01-11 75 views
0

我似乎無法準確找到適合我需求的表達式,我需要驗證表示從數據庫中提取的雙精度值的TextBox。表中的列有一個數字精度,所以我需要一個Regex表達式,它將保持double值的長度以適應表列的精度19。它可以是空的,但不能超出該領域的限制。指定長度的雙精度值的正則表達式

確切地說,數據庫列的值是一個OleDbType.Currency,但是當我檢索我相信的數據類型時,它會轉化爲double或integer。

如果任何人有一種表達適合我的需要我很感激

+0

你能舉一些例子嗎? –

+0

我不是百分之百確定貨幣類型如何使用精度屬性,但我相信它會是這樣的,如果精度爲10,它不會允許12345678.90,因爲它超過了10個字符的限制,所以我需要驗證輸入以確保它不會超過該值,同時佔用十進制數 –

+1

另一種方法(除正則表達式驗證屬性外)將創建(或查找)實現'double.TryParse()'的自定義驗證屬性,以便您可以使用C#的構建進行驗證。 –

回答

2

我想我需要更多的表中的數據的一個例子,太多。不過,如果這樣的事情開始變得有:

-?\d+(\.\d{1,x})?

其分解:

-?是一個可選的減號。

\d+超過x位數字爲數字一定量

(\.\d{1,x})?爲隨後通過至少一個數字的可選基團的小數點,通過。對於x,代表您知道它可以具有的最大精度或比例。

+0

似乎接近我所需要的,規模限制只適用於小數點後,我需要限制整個字符串。我會玩弄它,直到我找到我需要的確切組合,謝謝 –