【发布时间】:2015-04-23 12:08:25
【问题描述】:
我想要一个正则表达式来将输入十进制值限制为最大值。 16位或15位加1个字符(包括小数点)
我在正则表达式下面发现它在 C# 代码中工作,但是当我在 TextEdit xaml 中使用它作为掩码时。 (DevExpress) 抛出异常syntax error:
面具:
^(?:(?=.{0,16}$)\d*\.\d+|\d{0,16})[kKmMbBtT]?$
TextEdit Xaml:
<dxe:TextEdit HorizontalAlignment="Left" MaskType="RegEx"
Mask="(?:(?=.{0,16}$)[0-9]*([.]?[0-9]+)|[0-9]{0,16})[kKmMbBtT]?"
VerticalAlignment="Top" Width="150"
EditValue="{Binding DecValue, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
Margin="10,33,0,0"/>
我想从中达到的目的:
- 用户可以输入 16 位小数(包括小数点)或
- 用户可以输入15位数字和1个字符(包括小数点)
- 他只能输入一次小数点
- 输入字符串的总长度不得超过 16 个字符。
【问题讨论】:
-
MaskType="RegEx" Mask="(?:(?=.{0,16}$)[0-9]*([.]?[0-9]+)|[ 0-9]{0,16})[kKmMbBtT]?"
-
@GrantWinney 例外是:
syntax error,直接在XAML编辑器中抛出。
标签: c# regex wpf xaml devexpress