屏蔽文本框仅接受小数

l46*_*kok 0 .net c# regex wpf maskedtextbox

我正在使用此链接中的技术来屏蔽我的文本框以接受十进制格式的字符串(具有单个句点的数字).

如何定义TextBox输入限制?

这是我在面具中加入的正则表达式:

b:Masking.Mask="^\d+(\.\d{1,2})?$"
Run Code Online (Sandbox Code Playgroud)

由于一些奇怪的原因,它允许我输入数字,但我不能在我的文本框中插入句点.

我也在这里验证了正则表达式,所以正则表达式绝对是正确的.

http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx

可能是什么问题?

Vis*_*har 8

用这个修改你的正则表达式:

^\d+([\.\d].{1,2})?$
Run Code Online (Sandbox Code Playgroud)

DEMO

编辑:

上面的正则表达式也允许123..1超过1小数点.所以我刚刚发现问题并修复了以下问题:

^(\d+)?+([\.]{1})?+([\d]{1,2})?$
Run Code Online (Sandbox Code Playgroud)

DEMO