我正在开发一个电子邮件验证,并想检查电子邮件中是否有超过1@的符号,我该如何实现?
static string Check(string email)
{
if (email.Contains("@") && email.Contains("."))
{
// check for 2 @ symbols or more will be here
return email;
}
return string.Empty;
}
通常情况下,您不应该重新发明轮子,尤其是对于电子邮件验证这样的复杂主题。使用可用的正则表达式或MailAddress
构造函数。
然而,为了回答你的问题,如果你真的需要这样的东西(用于其他任务(,你可以实现这样的扩展方法:
public static IList<int> AllIndexOf(this string text, string str, StringComparison comparisonType)
{
IList<int> allIndexOf = new List<int>();
int index = text.IndexOf(str, comparisonType);
while(index != -1)
{
allIndexOf.Add(index);
index = text.IndexOf(str, index + 1, comparisonType);
}
return allIndexOf;
}
有了这个就很容易了:
if(email.AllIndexOf("@", StringComparison.OrdinalIgnoreCase).Count > 1)
{
// ...
}