如何获取用户名和域名从一个电子邮件地址:解析普通电子邮件地址分为两个部分
string email = "[email protected]";
//Should parse into:
string username = "hello";
string domain = "example.com";
我正在寻找最短的代码要做到这一点,并不一定有效。
场景:我想解析它在我的ASP.NET MVC视图,所以我可以掩饰它。
如何获取用户名和域名从一个电子邮件地址:解析普通电子邮件地址分为两个部分
string email = "[email protected]";
//Should parse into:
string username = "hello";
string domain = "example.com";
我正在寻找最短的代码要做到这一点,并不一定有效。
场景:我想解析它在我的ASP.NET MVC视图,所以我可以掩饰它。
使用MailAddress类
MailAddress addr = new MailAddress("[email protected]");
string username = addr.User;
string domain = addr.Host;
该方法具有这样也解析的情况下(和其他人,你可能不期望)的好处:
MailAddress addr = new MailAddress("\"Mr. Hello\" <[email protected]>");
string username = addr.User;
string host = addr.Host;
在以上两种情况下:
Debug.Assert(username.Equals("hello"));
Debug.Assert(host.Equals("site.com"));
在您使用指令的其他文件的顶部添加:
using System.Net.Mail;
小记:MailAddress在Windows应用商店应用上不可用。 – 2013-05-31 09:02:48
String[] parts = "[email protected]".Split(new[]{ '@' });
String username = parts[0]; // "hello"
String domain = parts[1]; // "example.com"
-1甚至没有编译 – 2010-12-14 21:24:46
对于缺少分号?编译错误有点过于严重,不是吗? – 2010-12-14 21:48:56
仍然不能编译... – 2010-12-14 22:40:22
string username = email.Split('@')[0];
string domain = email.Split('@')[1];
int i = email.IndexOf('@');
if (i >= 0)
{
username = email.Substring(0, i);
domain = email.Substring(i + 1);
}
使用此它不会给异常的时候没有发现,而不是域名或用户名,它会给为空值,
C#:
string email = "[email protected]";
string username = email.Split('@').ElementAtOrDefault(0);
string domain = email.Split('@').ElementAtOrDefault(1);
VB:
Dim email as String = "[email protected]";
Dim username = email.Split("@".ToCharArray()).ElementAtOrDefault(0);
Dim domain = email.Split("@".ToCharArray()).ElementAtOrDefault(1);
email.Split('@')[0]和email.Split('@')[1] – Aliostad 2010-12-14 19:21:51
使用Brian Bondy的解决方案。任何使用'string.Split'的东西在很多情况下都会失败。现在哪里是强制性(和绝望的错误)正则表达式解决方案? – 2010-12-14 19:44:26
@Jim:/ hello/and /site\.com/ – 2010-12-14 19:59:50