Devexpress TextEdit Mask regex Invalid



我在下面应用掩码设置到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是无效值。

请指导我如何改正这个表达式

尝试以下操作(我无法访问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.更改为.

最新更新