Expressions régulières et accents & cédilles
Posté : 12 mars 2007, 17:05
Bonjour,
Je suis en train de bosser sur un formulaire en PHP et je teste la valeur des champs via des expressions régulières.
J'ai notamment une fonction qui teste l'expression suivante : "^[A-Za-z' -]+$" (caractères de A à Z, en minuscules/majuscules, apostrophe, espace et trait d'union).
En faisant mes tests, je me suis aperçu que si j'avais une cédille dans le mot testé ("Besançon"), il ne remplissait pas les conditions de l'expression régulière. En remplaçant la cédille par un caractère accentué ("Besanéon"), idem. Ça m'a paru assez curieux.
Par contre, si j'ajoute n'importe quel caractère accentué à la fin de mon expression ("^[A-Za-z' -à]+$", par exemple), les accents et les cédilles sont alors correctement reconnus !?
Est-ce qu'il y a une explication à cela ? est-ce une mauvaise compréhension de ma part concernant les expressions régulières ? un problème avec PHP ? un paramètre à régler pour que les expressions régulières prennent en compte tous les caractères des langues latines (accents, cédilles, ß allemand, etc.) ? un problème lié au charset de ma page ?
Je suis en train de bosser sur un formulaire en PHP et je teste la valeur des champs via des expressions régulières.
J'ai notamment une fonction qui teste l'expression suivante : "^[A-Za-z' -]+$" (caractères de A à Z, en minuscules/majuscules, apostrophe, espace et trait d'union).
En faisant mes tests, je me suis aperçu que si j'avais une cédille dans le mot testé ("Besançon"), il ne remplissait pas les conditions de l'expression régulière. En remplaçant la cédille par un caractère accentué ("Besanéon"), idem. Ça m'a paru assez curieux.
Par contre, si j'ajoute n'importe quel caractère accentué à la fin de mon expression ("^[A-Za-z' -à]+$", par exemple), les accents et les cédilles sont alors correctement reconnus !?
Est-ce qu'il y a une explication à cela ? est-ce une mauvaise compréhension de ma part concernant les expressions régulières ? un problème avec PHP ? un paramètre à régler pour que les expressions régulières prennent en compte tous les caractères des langues latines (accents, cédilles, ß allemand, etc.) ? un problème lié au charset de ma page ?