【发布时间】:2017-01-05 16:12:25
【问题描述】:
我已使用以下代码成功过滤掉除数字之外的任何内容。我已经利用PreviewTextInput 事件来捕获当前输入:
private void NumericValidation(object sender, TextCompositionEventArgs e)
{
e.Handled = !_numericValidator.IsMatch(e.Text);
}
_numericValidator 定义为_numericValidator = new Regex("^[0-9]+$");
这段代码工作得很好,只允许在文本框中输入 0-9。
但是,我希望允许使用单个小数,以便输入更精确。我在 RegexBuddy 中测试了以下正则表达式,它可以正常工作,但我可以在文本框中输入无效数字,例如 1..1 和 4.3.5。
^(?!\.{2,})(?:\d+)?(?:\.{0,1})?(?:\d+)?$
对我接下来应该尝试什么有什么建议吗?
【问题讨论】:
-
我无法得到公认的答案,但这个答案更进一步对我有用。 stackoverflow.com/a/29521786/25515