VB.NET, как я могу проверить, содержит ли строка символы алфавита и.? - PullRequest
6 голосов
/ 14 февраля 2012

Используя Visual Basic, у меня есть строка.Хотите убедиться, что строка содержит один заглавный алфавитный символ, за которым следует точка.Пробовал использовать Contains, как показано ниже:

someString.Contains ("[AZ]."), Но это не вернуло мне то, что я хотел.

Также необходимо проверить наличие одногономер, за которым следует точка.

Как это сделать в Visual Basic

Ответы [ 9 ]

11 голосов
/ 10 ноября 2013

Логика немного отличается от ответа с наивысшим рейтингом. Функция будет проверять только первый символ, а затем вернет true. Вот твик, который проверит всю строку для буквенных символов:

'Validates a string of alpha characters
Function CheckForAlphaCharacters(ByVal StringToCheck As String)
    For i = 0 To StringToCheck.Length - 1
        If Not Char.IsLetter(StringToCheck.Chars(i)) Then
            Return False
        End If
    Next

    Return True 'Return true if all elements are characters
End Function
10 голосов
/ 21 ноября 2012

Используйте эту функцию:

Function CheckForAlphaCharacters(ByVal StringToCheck As String)


    For i = 0 To StringToCheck.Length - 1
        If Char.IsLetter(StringToCheck.Chars(i)) Then
            Return True
        End If
    Next

    Return False

End Function

Использование

    Dim Mystring As String = "abc123"
    If CheckForAlphaCharacters(Mystring) Then
        'do stuff here if it contains letters
    Else
        'do stuff here if it doesn't contain letters
    End If
6 голосов
/ 07 ноября 2014

Я полагаю, у меня есть другой способ проверить, есть ли письмо в строке, если это все, что вы хотели проверить. скажем, у вас есть случайная строка символов. Например, «12312H231» строка не совпадает с этой, потому что в ней есть буква «12312h231», если вы используете string.tolower = string.toupper. будет ложным, если у него есть буква, и истинным, если у него только цифры.

if string1.toupper = string1.tolower then
'string1 is a number
else
'string1 contains a letter
end if
3 голосов
/ 18 марта 2012

У меня есть простое решение. Но решение не элегантное. Сначала вы можете создать строку, то есть от «A.», «B.» до «Z».

Итак, предположим, что переменная MyString содержит строку, которую вы хотите проверить. Затем вы можете проверить MyString с "А." строка с использованием метода String.IndexOf. Если возвращаемое значение неотрицательно, тогда "А." существовал в MyString. Продолжайте для "B.", "C." до "З." Вы можете повторить то же самое для целого числа, то есть «0», «1». до "9.".

2 голосов
/ 30 июля 2015

FYI, в VBA нам нужно использовать Lcase для нижнего символа и Ucase для верхнего символа

If Lcase(String1) = Ucase(String2) then
Msgbox " Numbers"

Else
Msgbox " Alphabets"

End if
2 голосов
/ 08 марта 2015

Очевидно, я не могу голосовать или комментировать здесь.Тем не менее, ответ RegEx является, безусловно, самым простым и лучшим решением этой проблемы.Например, если вам нужно проверить строку на предмет того, является ли она числовой, или буквенно-цифровой, или буквенно-цифровой, или смесью, что угодно, это решение решает задачу.

Проверка, является ли строка числовой, использует "[0-9]*" Только альфаВсе заглавные буквы "[A-Z]*" Только альфа, допускается смешанный регистр: "[A-Z][a-z]*" Две цифры, одна заглавная буква, затем шесть строчных букв, за которыми следует одна цифра, равная '3' или '7': "[0-9]{2}[A-Z][a-z]{6}[3,7]"

Например, этот оператор проверяет, начинается ли строка двумя буквами и заканчивается 7 цифрами: (взято из SSRS)

System.Text.RegularExpressions.Regex.ismatch(Fields!YourStringToTest.Value,"[A-Z][a-z]{2}[0-9]{7}")
2 голосов
/ 28 апреля 2014

Я добавил проверку пробелов, когда смотрю на имена. Это не вернет false, если в вашей строке есть пробел.

    'Validates a string of alpha characters
    Function CheckForAlphaCharacters(ByVal StringToCheck As String)
        For i = 0 To StringToCheck.Length - 1
            If Not Char.IsLetter(StringToCheck.Chars(i)) Then
                If Not Char.IsWhiteSpace(StringToCheck.Chars(i)) Then
                    Return False
                End If
            End If
        Next

        Return True 'Return true if all elements are characters

Функция завершения

2 голосов
/ 14 февраля 2012

Одним из решений является использование регулярных выражений. Вы можете проверить следующее регулярное выражение для соответствия алфавиту,. а?

([A-Z]|.|\?)

Я не проверял выше.

2 голосов
/ 14 февраля 2012

Вы можете создать регулярное выражение для проверки этого (или Google для регулярного выражения, которое делает то, что вам нужно. Затем вызовите regex.match

Regex.Match(inputString, "regex") 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...