cs_Yxion
Messages postés219Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 7 septembre 2009
-
1 mars 2007 à 06:06
cs_Yxion
Messages postés219Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 7 septembre 2009
-
1 mars 2007 à 17:43
Salut tous le monde,
Avant de réinventer la roue, je voulais savoir s'il existait un méthode pertant de dire si oui ou non une chaine de caractères contient des caractères spéciaux, pour valider des chaines contenant des caractères de a-z et A-Z... rien d'autre, je ne veux ni remplacer, ni supprimer, juste valider une chaine de caractères... je cherche une méthode fesant cela, mais je trouve pas, je sans doute au mauvais endroit, et je suis sur d'avoir croisé ca un jour...
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 1 mars 2007 à 07:53
Hello,
Je ne suis de loin pas un spécialiste des expressions régulières, mais à mon avis c'est le moyen le plus simple d'atteindre ton but sans parcourir la chaîne.
using
System.Text.RegularExpressions;
....
Regex reg = newRegex("^[a-zA-Z]*$"
);
if
(reg.IsMatch(tbx_File.Text))
{}
else
{}
Pour une petite explication :
[a-zA-Z] donne la liste des charactères autorisés
* indique que ces charactère peuvent être présent de 0 à N fois.
^ et $ indiquent respectivement le début et la fin de la chaîne de charactères
cs_Bidou
Messages postés5486Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 1 mars 2007 à 08:33
Si c'est juste pour savoir combien y'a de caractères qui ne sont pas des lettres, une autre solution (qui sera peut-être plus rapide à l'exécution qu'une Regex) c'est d'itérer sur chaque caractère de la chaîne et d'appeler la méthode char.IsLetter. On a donc qqch comme:
bool ok = true;
foreach(char c in myString)
{
if(!char.IsLetter(c)) { ok = false; break; }
}
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 1 mars 2007 à 08:54
Hello,
Si j'ai bien compris sa question, il veut valider des chaines ne contenant que a-zA-Z, isLetter est vrai avec un charactère accentué aussi, ce qu'il aimerait éviter.
Amicalement, SharpMao
Vous n’avez pas trouvé la réponse que vous recherchez ?