2013-04-23 127 views
1

我在Mask設置下應用Devexpress TextEdit控件,但在執行時給我語法錯誤。Devexpress TextEdit Mask正則表達式無效

textEdit1.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.RegEx; 
textEdit1.Properties.Mask.EditMask = "(100(?:\\.0{1,3})?|0*?\\.\\d{1,3}|\\d{1,2}(?:\\.\\d{1,3})?)%"; 

使用此正則表達式的概念是從0-100百分比的輸入值以及3位十進制可選。

25, 25.5, 60, 60.369, 99 but 101, 10.2569是無效的值。

請指導我如何更正此表達式。

+0

因爲我在[doc](http://documentation.devexpress.com/#WindowsForms/CustomDocument1501)找不到它,你確定懶惰的運營商支持?此外,他們似乎沒有在文檔中雙重轉義,但這不會造成語法錯誤。 – Loamhoof 2013-04-23 08:39:19

+0

請參閱[TextEdit EditMask RegEx](http://www.devexpress.com/Support/Center/p/Q338736.aspx) – 2013-04-23 11:57:18

回答

0

試試下面的(我沒有訪問的DevExpress這裏,所以不能完全測試):

(100(\R.0{1,3})?)|((\d{1,2}(\R.\d{1,3})?)) 

它是與分開的兩個備用件「|」,第一部分檢查100 (100,100.0,100.00,100.000)

第二部分處理小數點前一位或兩位數字的數字,以及可選小數點後三位數字(25,25.5,60, 60.369,99)。

\R.實際上匹配由當前區域性的System.Globalization.NumberFormatInfo.NumberDecimalSeparator屬性指定的小數分隔符。每個文檔。如果你只是想拿起小數點,不管你可以更改\R.\.