可以说我有一个变量:varEmail。它包含一个变量等于到用户的电子邮件地址,所以它可能包含如下值:消除VB.NET中字符串的部分
现在,可以说我想要得到的只是一部分电子邮件地址,例如脱光域,就像这样:
“myemail”
我怎样才能做到这一点在VB.NET与字符串操作?我知道这一定是简单的...也许这仅仅是在清晨...
可以说我有一个变量:varEmail。它包含一个变量等于到用户的电子邮件地址,所以它可能包含如下值:消除VB.NET中字符串的部分
现在,可以说我想要得到的只是一部分电子邮件地址,例如脱光域,就像这样:
“myemail”
我怎样才能做到这一点在VB.NET与字符串操作?我知道这一定是简单的...也许这仅仅是在清晨...
第一个给出电子邮件名称;第二个给出域名。
dim varEmail as string="[email protected]"
MsgBox(varEmail.Substring(0, varEmail.IndexOf("@")))
MsgBox(varEmail.Substring(varEmail.IndexOf("@") + 1))
如果你知道你一直在处理有效的电子邮件地址,最简单的方法可能是像这样:
varEmail = varEmail.Split("@"c)(0)
这里是你的问题的解决方案:
Dim value, result as string
value="[email protected]"
result = value.Substring(0, value.IndexOf('@')+1)
我希望这将帮助你。
您是否尝试过在VB.NET中编译这段代码? – 2012-02-29 16:46:44
不......我没有...我是C#程序员。我只写了代码并根据VB.NET – Sankalp 2012-02-29 18:04:11
进行了修改。除了你没有修改它与VB.NET一起工作的事实 - 即使在修改之后,它也会按照OP的要求给出错误的结果。如果您是不熟悉VB.NET的C#程序员,那么最好坚持标签为C#的问题。试试这个:'result = value.Substring(0,value.IndexOf(“@”))' – 2012-03-01 09:09:43
对于它的乐趣,这里是一个比较老派的做法,仍然工作在.net中(和喜欢马特的答案,这是假定你知道这是一个有效的E-mail地址)...
strResult = Mid(varEmail, 1, (InStr(varEmail, "@") - 1))
如果你不知道你有一个有效的电子邮件做到这一点在尝试捕捉(如果该电子邮件是无效的,将抛出一个异常)...
Dim objMail As New System.Net.Mail.MailAddress(varEmail)
strResult = objMail.User
您可以使用拆分方法。例如:
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
惊讶没有人提到的正则表达式,替换'@ * $'用一个空字符串呢。! – Blindy 2012-02-29 15:43:25