1

我正在将掩码设置应用于 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 位小数。

like25, 25.5, 60, 60.369, 99 but 101, 10.2569是无效值。

请指导我如何纠正这个表达。

4

1 回答 1

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.\.

于 2013-04-23T08:44:36.713 回答