2012-02-29 61 views
0

可以说我有一个变量:varEmail。它包含一个变量等于到用户的电子邮件地址,所以它可能包含如下值:消除VB.NET中字符串的部分

[email protected]

现在,可以说我想要得到的只是一部分电子邮件地址,例如脱光域,就像这样:

“myemail”

我怎样才能做到这一点在VB.NET与字符串操作?我知道这一定是简单的...也许这仅仅是在清晨...

+2

惊讶没有人提到的正则表达式,替换'@ * $'用一个空字符串呢。! – Blindy 2012-02-29 15:43:25

回答

4

第一个给出电子邮件名称;第二个给出域名。

dim varEmail as string="[email protected]" 
MsgBox(varEmail.Substring(0, varEmail.IndexOf("@"))) 
MsgBox(varEmail.Substring(varEmail.IndexOf("@") + 1)) 
4

如果你知道你一直在处理有效的电子邮件地址,最简单的方法可能是像这样:

varEmail = varEmail.Split("@"c)(0) 
0

这里是你的问题的解决方案:

Dim value, result as string 

    value="[email protected]" 
     result = value.Substring(0, value.IndexOf('@')+1) 

我希望这将帮助你。

+0

您是否尝试过在VB.NET中编译这段代码? – 2012-02-29 16:46:44

+0

不......我没有...我是C#程序员。我只写了代码并根据VB.NET – Sankalp 2012-02-29 18:04:11

+0

进行了修改。除了你没有修改它与VB.NET一起工作的事实 - 即使在修改之后,它也会按照OP的要求给出错误的结果。如果您是不熟悉VB.NET的C#程序员,那么最好坚持标签为C#的问题。试试这个:'result = value.Substring(0,value.IndexOf(“@”))' – 2012-03-01 09:09:43

2

对于它的乐趣,这里是一个比较老派的做法,仍然工作在.net中(和喜欢马特的答案,这是假定你知道这是一个有效的E-mail地址)...

strResult = Mid(varEmail, 1, (InStr(varEmail, "@") - 1)) 

如果你不知道你有一个有效的电子邮件做到这一点在尝试捕捉(如果该电子邮件是无效的,将抛出一个异常)...

Dim objMail As New System.Net.Mail.MailAddress(varEmail) 
strResult = objMail.User 
1

您可以使用拆分方法。例如:

Dim MyString As String = "[email protected]" 
Dim MyString2() As String 
Dim MyString3 As String 

MyString2 = Split(MyString, "@", -1, CompareMethod.Binary) 
MyString3 = MyString2(0) 

现在MyString3 = myemail