Проверка того, что строка содержит только буквы в C #

У меня есть строка ввода, и я хочу проверить, что она содержит:

  • Только буквы или
  • Только буквы и цифры или
  • Только буквы, цифры или символ подчеркивания

Чтобы уточнить, у меня есть 3 разных случая в коде, каждый из которых требует различной проверки. Каков самый простой способ достичь этого в C #?

Только буквы:

Regex.IsMatch(input, @"^[a-zA-Z]+$"); 

Только буквы и цифры:

 Regex.IsMatch(input, @"^[a-zA-Z0-9]+$"); 

Только буквы, цифры и символ подчеркивания:

 Regex.IsMatch(input, @"^[a-zA-Z0-9_]+$"); 
 bool result = input.All(Char.IsLetter); bool result = input.All(Char.IsLetterOrDigit); bool result = input.All(c=>Char.IsLetterOrDigit(c) || c=='_'); 

Только буквы:

 Regex.IsMatch(theString, @"^[\p{L}]+$"); 

Письма и номера:

 Regex.IsMatch(theString, @"^[\p{L}\p{N}]+$"); 

Буквы, цифры и символ подчеркивания:

 Regex.IsMatch(theString, @"^[\w]+$"); 

Обратите внимание, что эти шаблоны также соответствуют международным символам (в отличие от использования конструкции az ).

Для тех из вас, кто предпочел бы не идти с Regex и находится на платформе .NET 2.0 (AKA no LINQ):

Только буквы:

 public static bool IsAllLetters(string s) { foreach (char c in s) { if (!Char.IsLetter(c)) return false; } return true; } 

Только цифры:

  public static bool IsAllDigits(string s) { foreach (char c in s) { if (!Char.IsDigit(c)) return false; } return true; } 

Только цифры или письма:

  public static bool IsAllLettersOrDigits(string s) { foreach (char c in s) { if (!Char.IsLetterOrDigit(c)) return false; } return true; } 

Только цифры или буквы или подчеркивания:

  public static bool IsAllLettersOrDigitsOrUnderscores(string s) { foreach (char c in s) { if (!Char.IsLetterOrDigit(c) && c != '_') return false; } return true; } 

Я считаю хорошим примером использования регулярных выражений:

 public bool IsAlpha(string input) { return Regex.IsMatch(input, "^[a-zA-Z]+$"); } public bool IsAlphaNumeric(string input) { return Regex.IsMatch(input, "^[a-zA-Z0-9]+$"); } public bool IsAlphaNumericWithUnderscore(string input) { return Regex.IsMatch(input, "^[a-zA-Z0-9_]+$"); } 

Вы можете зацикливаться на символах строки и проверять с помощью метода Char Method IsLetter, но вы также можете сделать трюк, используя метод String IndexOfAny для поиска других символов, которые не должны находиться в строке.

Итерации по строкам символов и использование функций «Char», называемых «IsLetter» и «IsDigit».

Если вам нужно что-то более конкретное – используйте class Regex.

Если вы новичок, то вы можете взять ссылку из моего кода. Что я сделал, это поставить чек, чтобы я мог получить только алфавиты и пробелы! Вы можете повторить цикл for после второго оператора if, чтобы снова подтвердить строку

  bool check = false; Console.WriteLine("Please Enter the Name"); name=Console.ReadLine(); for (int i = 0; i < name.Length; i++) { if (name[i]>='a' && name[i]<='z' || name[i]==' ') { check = true; } else { check = false; } } if (check==false) { Console.WriteLine("Enter Valid Value"); name = Console.ReadLine(); } 
  • Как вы можете вводить пробелы с помощью scanf?
  • Как интерполировать строки?
  • как предварительно выделить память для объекта std :: string?
  • Как удалить одиночный символ из строки
  • Как извлечь имя файла из пути?
  • Как разбить многострочную строку на несколько строк?
  • Удалить часть строки
  • Сравните одну строку с несколькими значениями в одном выражении
  • Как добавить новую строку в datagridview программно
  • Создание списка, разделенного запятыми, из IList или IEnumerable
  • Android-образец Bluetooth-кода для отправки простой строки через bluetooth
  • Давайте будем гением компьютера.