我想修改一个现有的项目。请原谅我缺乏知识,我们的开发人员最近离开了这家公司,我试图解决一个问题,直到我们采用一个新的问题。解析一个'全名'字符串到一个电子邮件地址
这是一个基于其他信息发送电子邮件的webform应用程序。所有名称中使用以下格式之一:
- 名字姓氏
- 名字姓氏Lastname2
- 名字姓氏-Lastname2
我只是想处理字符串生成电子邮件地址。再次,这些遵循设置的格式,即[email protected]。我想通过找到第一个空间我可以孤立姓氏和简单地删除多余的空格或连字符,但我的代码似乎并没有工作。
我遇到的问题是,任何具有多个姓氏的人都会因应用程序获取的电子邮件地址错误而导致传送失败。例如:
传递失败这些收件人或组:Steven.Smith ([email protected])
如果只是名字史蒂芬·琼斯,它会正常工作,我有测试了几次。
我的代码:
string fn = FullName.Text.ToString();
string y = fn.Substring(0, fn.IndexOf(" ")).Trim().Replace(" ", "");
string z = fn.Substring(fn.IndexOf(" ") + 1).Trim().Replace(" ", "");
String ToAddress = y + "." + z + "@domain.com";
FullName的变量来自于该位的代码,我猜,这在Page_Load中类
System.Security.Principal.WindowsIdentity wi = System.Security.Principal.WindowsIdentity.GetCurrent();
string[] a = Context.User.Identity.Name.Split('\\');
System.DirectoryServices.DirectoryEntry ADEntry = new System.DirectoryServices.DirectoryEntry("WinNT://" + a[0] + "/" + a[1]);
string Name = ADEntry.Properties["FullName"].Value.ToString();
有没有人对我怎么能实现任何想法我目标在这里?我很抱歉我的知识缺乏,但我对ASP.NET并不完全熟悉。从我的研究看来,我应该也许应该将字符串拆分成一个数组,但我无法弄清楚如何在程序中实现这一点。
也没有工作的原始代码如下。在我的例子中,我试图让它更有效率,并能够处理三个名字。
string myString1 = txtName.Text.ToString();
int t = myString1.IndexOf(" ", 0);
//Extract the first name for from address
int q = t;
string fn1 = this.txtName.Text.ToString();
string b = fn1.Substring(0,q);
//Extract the Last name for from address
int r= t;
string ln1 = this.txtName.Text.ToString();
string c= fn1.Substring(r+1);
谢谢!
请出示一些例子输入和输出。 – CodeCaster 2015-03-02 15:01:55
当两个人有相同的名字时会发生什么? – Jodrell 2015-03-02 15:50:54
幸运的是,没有人拥有相同的名字。如果有的话,我们会通过添加一个数字或其他东西来使名称不同。 – 2015-03-02 16:52:46