我正在使用以下代码验证存在于数组中的电子邮件地址。但是在成功验证数组中的第一个电子邮件地址之后,对于下一个电子邮件地址,它总是返回false。请问为什么会这样?
public static bool IsValidEmailID(string email)
{
string MatchEmailPattern =
@"^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@"
+ @"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?
[0-9]{1,2}|25[0-5]|2[0-4][0-9])\."
+ @"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?
[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|"
+ @"([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})$";
Regex reStrict = new Regex(MatchEmailPattern);
return reStrict.IsMatch(email);
}
更新: 下面的代码从Windows表单文本框中获取电子邮件地址:
String[] EmailArr = txtEmailID.Text.Split(new char[]{','},StringSplitOptions.RemoveEmptyEntries);
for(int i = 0; i < EmailArr.Length; i++)
{
MessageBox.Show(IsValidEmailID(EmailArr[i])+" "+EmailArr[i]);
}
IsValidEmailID
方法的代码,另外也请提供数组的前两行?问题不在这段代码。我试过一组有效的电子邮件地址,它对于每一个都返回真值。 - Øyvind Bråthen[a-zA-Z]{2,4}
,这些域名中的电子邮件地址将被您的正则表达式拒绝。 - Hans Kesting