J'ai une chaîne d'entrée et je veux vérifier qu'elle contient:
- Seulement des lettres ou
- Seulement des lettres et des chiffres ou
- Seulement des lettres, des chiffres ou des traits de soulignement
Pour clarifier, j'ai 3 cas différents dans le code, chacun appelant une validation différente. Quel est le moyen le plus simple d'y parvenir en C #?
la source
Regex
pour toutes les lettres, et 3 fois plus rapide que compiléRegex
pour toutes les lettres avec l'IgnoreCase
option (!).Lettres seulement:
Lettres et chiffres:
Lettres, chiffres et trait de soulignement:
Notez que ces modèles correspondent également aux caractères internationaux (par opposition à l'utilisation de la
a-z
construction).la source
Pour ceux d'entre vous qui préfèrent ne pas utiliser Regex et sont sur le Framework .NET 2.0 (AKA no LINQ):
Seulement des lettres:
Seulement les chiffres:
Seulement des chiffres ou des lettres:
Seulement des chiffres ou des lettres ou des traits de soulignement:
la source
Je pense que c'est un bon cas pour utiliser les expressions régulières:
la source
Vous pouvez effectuer une boucle sur les caractères de string et vérifier à l'aide de la méthode Char IsLetter, mais vous pouvez également faire une astuce en utilisant la méthode String IndexOfAny pour rechercher d'autres caractères qui ne sont pas supposés être dans la chaîne.
la source
Itérez les chaînes de caractères et utilisez les fonctions de «Char» appelées «IsLetter» et «IsDigit».
Si vous avez besoin de quelque chose de plus spécifique, utilisez la classe Regex.
la source
Si vous êtes un débutant, vous pouvez prendre la référence de mon code .. ce que j'ai fait était de mettre un chèque afin que je ne puisse obtenir que les alphabets et les espaces blancs! Vous pouvez répéter la boucle for après la seconde instruction if pour valider à nouveau la chaîne
la source
Récemment, j'ai amélioré les performances d'une fonction qui vérifie les lettres dans une chaîne à l'aide de cette page.
J'ai compris que les solutions avec regex sont 30 fois plus lentes que celles avec la vérification Char.IsLetterOrDigit.
Nous n'étions pas sûrs que ces lettres ou chiffres incluent et nous n'avions besoin que de caractères latins, nous avons donc implémenté notre fonction basée sur la version décompilée de la fonction Char.IsLetterOrDigit.
Voici notre solution:
Et l'utilisation est comme ceci:
la source
Veuillez trouver la méthode pour valider si char est une lettre, un chiffre ou un espace, sinon attachez un trait de soulignement (soyez libre de modifier selon vos besoins)
la source