Para aquellos de ustedes que prefieren no ir con Regex y están en .NET 2.0 Marco (También conocido como sin LINQ):
sólo letras:
public static bool IsAllLetters(string s)
{
foreach (char c in s)
{
if (!Char.IsLetter(c))
return false;
}
return true;
}
sólo números:
public static bool IsAllDigits(string s)
{
foreach (char c in s)
{
if (!Char.IsDigit(c))
return false;
}
return true;
}
sólo números o letras:
public static bool IsAllLettersOrDigits(string s)
{
foreach (char c in s)
{
if (!Char.IsLetterOrDigit(c))
return false;
}
return true;
}
Solamente los números o las letras o caracteres de subrayado:
public static bool IsAllLettersOrDigitsOrUnderscores(string s)
{
foreach (char c in s)
{
if (!Char.IsLetterOrDigit(c) && c != '_')
return false;
}
return true;
}
Esto supone un alfabeto latino, donde Char.IsLetter permite alfabetos no latinos. –
Regex.IsMatch (entrada, "^ [a-z0-9] + $", RegexOptions.IgnoreCase); –
@TomFobear: esto es más lento que especificar explícitamente [a-zA-Z] –