在输入验证中允许自定义字母?

时间:2016-06-02 15:42:41

标签: c# regex wpf

我有这个文本框:

<TextBox PreviewTextInput="InputValidation"/>

我希望用户只能插入数字,此符号=&gt; :

我实际上是这样做的:

private void InputValidation(object sender, TextCompositionEventArgs e)
{
        Regex regex = new Regex("[^0-9]+");
        e.Handled = regex.IsMatch(e.Text);
}

这只允许插入数字,如果我按:我看不到符号。如何在正则表达式中添加它?

3 个答案:

答案 0 :(得分:2)

正则表达式中的方括号用于表示要匹配的字符范围(或^不匹配)。所以你需要做的就是添加:字符:

Regex regex = new Regex("[^0-9:]+");

现在,如果您想要这样做,他们只能添加1个(或其他一些数字):,那么它会变得有点棘手,但在这种情况下,您可能只想验证一次用户已完成输入而不是在键入时(因为否则会对用户造成真正的痛苦)。

答案 1 :(得分:1)

Regex regex = new Regex("[^0-9:]+");

澄清这意味着什么: -

&#39; ^&#39;意味着&#39;不是&#39;

&#39; 0-9&#39;意味着从零到九......

&#39; +&#39;表示一次或多次事件&#39;。

[]表示匹配&#39;。

的字符范围

但是,因为&#39; 0-9&#39;和&#39;:&#39;是在括号之间写的,因此它们的多次出现都是正确的。

上面的代码试图搜索不包含数字的单词,并且:如果发生了,请继续。

答案 2 :(得分:0)

请试试这个:

[0-9\:]+$

这允许您编写0到9之间的数字,以及字符: