2012-02-29 2 views
0

Допустим, у меня есть переменная: varEmail. Он содержит переменную, равную адрес электронной почты пользователя, так что он может содержать значение как:Устранение порции строки в VB.NET

«[email protected]»

Теперь, позволяет сказать, что я хочу, чтобы получить только часть адрес электронной почты, например сдирать домен, например, так:

"myemail"

Как я могу выполнить это в VB.NET с манипуляций со строками? Я знаю, что это должно быть просто ... может быть, это просто рано утром ...

+2

Удивлен никто не упомянул регулярные выражения замены '@ * $' с пустой строкой еще.! – Blindy

ответ

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? –

+0

Нет ... Я не ... Я программист на C#. Я просто написал код и модифицировал его в соответствии с VB.NET. – Sankalp

+0

Хорошо, кроме того, что вы * не * модифицировали его для работы с VB.NET - даже после модификации он дает неправильный результат по запросу OP. Если вы программист на C#, который не знаком с VB.NET, вероятно, лучше всего придерживаться вопросов с тегами C#. Попробуйте следующее: 'result = value.Substring (0, value.IndexOf (" @ "))' –

2

Для удовольствия, здесь является более старой школы подход, который до сих пор работает в .Net (и как ответ Мэтта, это предполагает, что вы знаете, это правильный E-почты) ...

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

Если вы не уверены, что у вас есть действующий адрес электронной почты сделать это в попытке поймать (он будет бросать исключение, если адрес электронной почты не является действительным) ...

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

вы можете использовать Split метод. Например:

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

Смежные вопросы