我有一个名为eMail&的c#程序的两个字符串。密码和我有一个正则表达式,检查文本是否匹配,如果两个字符串被验证它将这两个字符串保存在2个不同的文本文件中这是我的代码:
string eMail = textBox1.Text;
string password = textBox2.Text;
Regex email_Regex = new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$");
Match email_Match = email_Regex.Match(eMail);
Regex password_Regex = new Regex("^.{4,20}$");
Match password_Match = password_Regex.Match(password);
if (!email_Match.Success)
{
MessageBox.Show(this,
"Please Enter A Valid Email Adress !",
"Error While Connecting !",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Error,
MessageBoxDefaultButton.Button3);
}
else if (!password_Match.Success)
{
MessageBox.Show(this,
"Please Enter A Valid Password !",
"Error While Connecting !",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Error,
MessageBoxDefaultButton.Button3);
}
else if (password_Match.Success)
{
File.WriteAllText(@"D:\Password.txt", password);
}
else if (email_Match.Success)
{
File.WriteAllText(@"C:\Email.txt", eMail);
}
当我调试并测试我的程序时,只创建了一个文本文件,它是第一个(只有Password.txt) 任何解决方案?
答案 0 :(得分:2)
将其更改为:
if (!email_Match.Success)
{
MessageBox.Show(this,
"Please Enter A Valid Email Adress !",
"Error While Connecting !",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Error,
MessageBoxDefaultButton.Button3);
}
else if (!password_Match.Success)
{
MessageBox.Show(this,
"Please Enter A Valid Password !",
"Error While Connecting !",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Error,
MessageBoxDefaultButton.Button3);
}
else
{
File.WriteAllText(@"D:\Password.txt", password);
File.WriteAllText(@"C:\Email.txt", eMail);
}
因为只有其他一个如果可以执行,在上面的代码中,如果电子邮件和密码是正确的,它将写入两个文件。
您不需要再次检查匹配是否成功,因为您检查过它是否成功:)
答案 1 :(得分:1)
当你到达那里时,你知道两场比赛都是成功的。只需使用:
else (password_Match.Success)
{
File.WriteAllText(@"D:\Password.txt", password);
File.WriteAllText(@"C:\Email.txt", eMail);
}
答案 2 :(得分:0)
只需更改最后2个“else if”语句中的代码
你应该从代码中删除“else”
这就是全部