我需要在Ext.Net中对numberfield进行配置,但我无法找到正确的输入掩码,可选择允许直到两位小数(第三位小数等等被丢弃,如果用户按下该键完全被忽略) )。自然数的数量可以是任何数字。禁止使用否定数字。
我的案例:
这是我迄今为止尝试过的(C#代码):
X.NumberFieldFor(m => m.MyPoperty).ID("MyId").HideTrigger(true).MaskRe(@"/[\d,]/")
.Plugins(X.InputMask().ClearWhenInvalid(false)
.Mask("9?999,99")
);
X.NumberFieldFor(m => m.MyPoperty).ID("MyId").HideTrigger(true).MaskRe(@"/[\d,]/")
.Plugins(X.InputMask().ClearWhenInvalid(false)
.Mask("x,tt")
.MaskSymbols(symbols =>
{
symbols.Add(new MaskSymbol() { Name = "x", Regex = @"/^[0-9]*$/" });
symbols.Add(new MaskSymbol() { Name = "t", Regex = "[0-9]" });
})
);
X.NumberFieldFor(m => m.SuperficieRealSol).ID("MyId").HideTrigger(true)
.Plugins(X.InputMask().ClearWhenInvalid(false)
.Mask("x")
.MaskSymbols(symbols =>
{
symbols.Add(new MaskSymbol() { Name = "x", Regex = @"^\d+(\.\d{1,2})?$" });
})
);
X.NumberFieldFor(m => m.MyPoperty).ID("MyId")
.AllowExponential(false)
.DecimalPrecision(2)
.MinValue(0)
.HideTrigger(true);
我认为这里的问题是正则表达式和掩码符号之间的匹配。我无法看到如何配置mask和mask符号以匹配多个键输入。 例如,如果我的面具是
X,T
\d+
,它与数字位数无关。(?:,\d{1,2})?
但这种做法似乎无法奏效。
答案 0 :(得分:1)
描述所有这些事情的正则表达式是
@"^\d+(?:\.\d+)?(?:,\d{1,2})?$"
如果你能描述一个面具,它应该有效。
扩展
^
\d+
(?:
\. \d+
)?
(?:
,
\d{1,2}
)?
$