2016-12-25 3 views
0

Работает следующий код.Проверьте, если текст содержит более одного @

Dim aaa As String = "[email protected]" 
    If aaa.Contains("@") Then 
     MsgBox("Error1") 
    End If 

Следующий код не работает.

Dim bbb As String = "[email protected]@cc" 
    If bbb.Contains("*@*@*") Then 
     MsgBox("Error2") 
    End If 

Итак, что представляет собой проблема со следующей строкой?

If bbb.Contains("*@*@*") Then 

ответ

2

Это происходит потому, что строка bbb не содержит последовательность символов *@*@*.

String.Contains не поддерживает подстановочные знаки.

Вы можете использовать это вместо этого.

If Regex.Match(bbb,".*@.*@.*").Success then 
    MsgBox("Error2") 
End If 
1

Вы не можете использовать подстановочные знаки.

Содержит не поддерживает * подстановочные знаки. Может, попробовать?

If bbb.Contains("@") And bbb.IndexOf("@") <> bbb.LastIndexOf("@") Then 
    ... 
End If 
0

Вы можете использовать .count() для определения вхождения @ и показать соответствующее сообщение.

Dim bbb As String = "[email protected]@cc" 
    Dim cnt As Integer 

    cnt = bbb.Count(Function(x) x = "@") 'Number of @ in the string 

    If cnt = 1 Then 
    MsgBox("Error1") 
    ElseIf cnt = 2 Then 
    MsgBox("Error2") 
    End If 

Примечание: Я полагаю, что OP ищет вхождения символа в строке, а не конкретный шаблон, чтобы следовать

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