Для тех из вас, кто предпочел бы не ходить с регулярным выражением и находится на .NET 2.0 Framework (AKA нет 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;
}
Это предполагает латинский алфавит, где Char.IsLetter позволяет для нелатинских алфавитов. –
Regex.IsMatch (input, "^ [a-z0-9] + $", RegexOptions.IgnoreCase); –
@TomFobear: это медленнее, чем явно задание [a-zA-Z] –