我有一个文本框,用户将在其中按以下方式输入数据。例如 1.2-2012-2 但也可能是;12.5 -2010-4(强调第一部分)我的第一个方法是 aMaskedTextBox但由于第一部分没有确定的大小,我不能使用它。现在我想验证文本框。即我会让用户输入他/她想要的内容,但最后我想知道他/她是否以正确的方式输入了它。例如,如果用户键入 a12.4/2012^14(这是不正确的)我会知道。我不知道如何将这个想法转换为代码,所以请有人指导我。如果有替代方法。
2 回答
            3        
        
		
我猜匹配的文本框不能匹配不一致的输入,所以最好在这里使用正则表达式..
你可以使用这个正则表达式
^\d+(\.\d+)?-\d+-\d+$
然后您可以检查输入
if(Regex.IsMatch(input,regex))
     //valid
^描述字符串的开头
\d代表一个数字,即 0-9
+匹配前面的字符 1 到很多次..so\d+将匹配 1 到多个数字
?匹配前面的字符 0 到 1 time.so(\.\d+)?匹配.后跟 1 到多个数字可选
$描绘了字符串的结尾
和我们指定输入的开始和结束,否则它可以匹配介于两者之间的输入^..$
于 2013-02-02T17:55:12.963   回答
    
    
            1        
        
		
您可以使用TextChanged事件和Regex表达式:
private void textBox1_TextChanged(object sender, EventArgs e)
{
    var myRegex = new Regex(@"^(\d)+\.\d-(\d){4}-\d$");
    if (myRegex.IsMatch(textBox1.Text))
    {
        //Validation is ok
    }
    else
    {
        //Validation isn't ok
    }
}
我已经测试了这段代码。其作品。唯一我不完全了解您的模式,但以上应该可以工作。
如果 。是可选的,然后使用此模式:@"^(\d)+(\.\d)*-(\d){4}-\d$" 
于 2013-02-02T18:56:12.653   回答