Pour ceux d'entre vous qui préfèrent ne pas utiliser Regex et qui utilisent le cadre .NET 2.0 (donc pas de LINQ) :
Seulement des lettres :
public static bool IsAllLetters(string s)
{
foreach (char c in s)
{
if (!Char.IsLetter(c))
return false;
}
return true;
}
Seulement des chiffres :
public static bool IsAllDigits(string s)
{
foreach (char c in s)
{
if (!Char.IsDigit(c))
return false;
}
return true;
}
Seulement des chiffres ou des lettres :
public static bool IsAllLettersOrDigits(string s)
{
foreach (char c in s)
{
if (!Char.IsLetterOrDigit(c))
return false;
}
return true;
}
Seulement des chiffres ou des lettres ou des caractères de soulignement :
public static bool IsAllLettersOrDigitsOrUnderscores(string s)
{
foreach (char c in s)
{
if (!Char.IsLetterOrDigit(c) && c != '_')
return false;
}
return true;
}
0 votes
RegEx est plus lent qu'une vérification directe des caractères. Vous pouvez écrire une méthode d'extension ou en utiliser une qui est déjà écrite, comme la méthode Extensions.cs Un paquet NuGet qui rend les choses aussi simples que possible : Par exemple : "abcXYZ".IsAlphabetic() retournera True alors que "abc123".IsAlphabetic() retournera False.