我想要一个正则表达式来限制输入十进制值在最大值。 16位数字或15位数字和一个字符(包括小数点)十进制值的正则表达式限制16位数
我发现下面正则表达式它工作在C#代码查找,但是当我在TextEdit xaml作为掩码使用它。 (DevExpress的)引发异常syntax error
:
面膜:
^(?:(?=.{0,16}$)\d*\.\d+|\d{0,16})[kKmMbBtT]?$
文本编辑的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位和一个字符(包含小数点)
- 他可以只输入小数点一次
- 输入的总长度字符串不能超过16个字符。
MaskType =“正则表达式“Mask =”(?:(?=。{0,16} $)[0-9] *([。]?[0-9] +)| [0-9] {0,16})[kKmMbBtT ]?” –
什么是例外? –
@GrantWinney例外是:'语法错误',直接在'XAML'编辑器中抛出。 – nempoBu4