C# 如何验证文本框?
我有一个文本框,用户将在其中按以下方式输入数据。 e、 g.1.2-2012-2 但也可能是,;12.5-2010-4第一部分重点 我的第一个方法是一个MaskedTextBox,但由于第一部分没有确定的大小,我不能使用它。 现在我想验证文本框。i、 e.我会让用户输入他/她想要的内容,但最后我想知道他/她是否以正确的方式输入。 e、 g.如果用户键入的a12.4/2012^14不正确,我会知道。 我不知道如何将这个想法转换成代码,所以请有人来指导我。C# 如何验证文本框?,c#,winforms,validation,C#,Winforms,Validation,我有一个文本框,用户将在其中按以下方式输入数据。 e、 g.1.2-2012-2 但也可能是,;12.5-2010-4第一部分重点 我的第一个方法是一个MaskedTextBox,但由于第一部分没有确定的大小,我不能使用它。 现在我想验证文本框。i、 e.我会让用户输入他/她想要的内容,但最后我想知道他/她是否以正确的方式输入。 e、 g.如果用户键入的a12.4/2012^14不正确,我会知道。 我不知道如何将这个想法转换成代码,所以请有人来指导我。 如果有其他方法。我想匹配的文本框无法匹配不
如果有其他方法。我想匹配的文本框无法匹配不一致的输入,所以最好在这里使用正则表达式 你可以使用这个正则表达式
^\d+(\.\d+)?-\d+-\d+$
然后,您可以检查输入,如
if(Regex.IsMatch(input,regex))
//valid
^描述字符串的开头
\d表示一个数字,即0-9
+将前面的字符1匹配多次..因此\d+将1匹配多个数字
??匹配前面的字符0到1次。所以\.\d+?匹配a。后跟1到多个数字(可选)
$表示字符串的结尾
我们使用“^”和“$”指定输入的开始和结束,否则它可以匹配中间的输入 我猜匹配的文本框无法匹配不一致的输入,所以最好在这里使用正则表达式 你可以使用这个正则表达式
^\d+(\.\d+)?-\d+-\d+$
然后,您可以检查输入,如
if(Regex.IsMatch(input,regex))
//valid
^描述字符串的开头
\d表示一个数字,即0-9
+将前面的字符1匹配多次..因此\d+将1匹配多个数字
??匹配前面的字符0到1次。所以\.\d+?匹配a。后跟1到多个数字(可选)
$表示字符串的结尾
我们使用“^”和“$”指定输入的开始和结束,否则它可以匹配中间的输入 您可以使用TextChanged事件和正则表达式:
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$您可以使用TextChanged事件和正则表达式:
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$这是什么技术,例如winforms、wpf?您尝试了什么..这是什么输入..会。始终存在于输入中。@Some1.Kill.the.DJ不总是这是什么技术,例如winforms、wpf?您尝试过什么..输入是什么..会。始终存在于输入中。@Some1.Kill.the.DJ不总是可以解释这会做什么?因此,这意味着如果在第三部分中,我只希望用户输入2位数字,我键入\d\d???的。是否可选?我现在做什么?如果需要2位数字,请键入\d{2}。看到我的回答了吗?你能解释一下这到底是怎么回事吗?这意味着如果在第三部分中,我只想让用户输入两位数字,我就键入\d\d。是否可选?我现在做什么?如果需要2位数字,请键入\d{2}。请看我的回答。是可选的,我现在做什么?如果。是否可选使用星号“*”:\.*或在您的情况下使用@^\d+\.\d*-\d{4}-\d$还有一个问题,如果我希望第三部分只包含小于12的数字,该怎么办?让我们来回答这个问题。是可选的,我现在做什么?如果。是否可以选择使用星号“*”:\.*或者在您的情况下使用@^\d+\.\d*-\d{4}-\d$还有一个问题,如果我希望第三部分只包含小于12的数字,该怎么办?让我们来回答