2012-02-29 59 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