Devexpress TextEdit Mask正则表达式无效

时间:2013-04-23 08:12:59

标签: regex winforms devexpress percentage textedit

我正在将Mask设置应用于Devexpress TextEdit控件,但在执行时会给我语法错误。

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一样,

是无效的值。

请指导我如何更正此表达方式。

1 个答案:

答案 0 :(得分:0)

尝试以下操作(我无权访问devexpress,因此无法完全测试):

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

它是用“|”分隔的两个备用部分,第一部分检查100,最多三个十进制零(100,100.0,100.00,1.00000)

第二部分处理小数点前一位或两位数的数字,以及(25,25.5,60,60.369,99)后可选的小数和最多三位数。

\R.实际上匹配当前文化的System.Globalization.NumberFormatInfo.NumberDecimalSeparator属性指定的小数分隔符。根据文档。如果您只想取小数,则可以将\R.更改为\.

相关问题