Как проверить, содержит ли строка только цифры? - PullRequest
27 голосов
/ 26 мая 2011
Dim number As String = "07747(a)"

If number.... Then

endif

Я хочу иметь возможность проверить внутри строки, чтобы увидеть, есть ли в ней только номер, если он содержит только числа, тогда выполнить все, что находится внутри инструкции if? Какую проверку я использую, чтобы проверить, содержит ли строка только числовое значение, а не альфа ot () и т. Д.?

То, что я пытаюсь проверить, это номера мобильных телефонов, поэтому следует принять 077 234 211, но другие альфы не должны быть

Ответы [ 4 ]

59 голосов
/ 26 мая 2011

Вы можете использовать регулярное выражение, подобное этому

If Regex.IsMatch(number, "^[0-9 ]+$") Then

...

End If
28 голосов
/ 26 мая 2011

Использовать IsNumeric Функция :

IsNumeric(number)

Если вы хотите проверить номер телефона, вы должны использовать регулярное выражение, например:

^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{3})$
8 голосов
/ 26 мая 2011

http://msdn.microsoft.com/en-us/library/f02979c7(v=VS.90).aspx

Вы ничего не можете передать, если вам не нужно возвращаемое целое число, например

if integer.TryParse(number,nothing) then
6 голосов
/ 27 июля 2016

Вы можете просто удалить все пробелы и использовать LINQ All:

Определяет, удовлетворяют ли все элементы последовательности условию.

Используйте его, как показано ниже:

Dim number As String = "077 234 211"
If number.Replace(" ", "").All(AddressOf Char.IsDigit) Then
    Console.WriteLine("The string is all numeric (spaces ignored)!")
Else
    Console.WriteLine("The string contains a char that is not numeric and space!")
End If

Кому проверять только, состоит ли строка только из цифр использовать:

If number.All(AddressOf Char.IsDigit) Then
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...