我使用此链接中的技术来掩盖我的文本框接受以十进制格式(与一个周期位数)的字符串。
如何定义文本框输入限制?
下面是我把面具正则表达式:
b:Masking.Mask="^\d+(\.\d{1,2})?$"
对于一些奇怪的原因,它让我输入数字,但我不能插入文本框我的时间。
我也验证了正则表达式这里,所以正则表达式是绝对正确的。
http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx
可能是什么问题?
修改您正则表达式与此:
^\d+([\.\d].{1,2})?$
DEMO
编辑:
上述正则表达式也将允许123..1
是超过1个小数点。 所以我就发现了这个问题,并固定在下面的一个:
^(\d+)?+([\.]{1})?+([\d]{1,2})?$
DEMO
要么你可以使用正则表达式
^(\d+)?+([\.]{1})?+([\d]{1,2})?$
或者你可以使用下面的事件
bool blHasDot = false;
private void txt_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsDigit(e.KeyChar) || e.KeyChar == '\b')
{
// Allow Digits and BackSpace char
}
else if (e.KeyChar == '.' && !blHasDot)
{
//Allows only one Dot Char
blHasDot=true;
}
else
{
e.Handled = true;
}
}