On voit bien içi: http://www.expreg.com/ancrages.php que non...Ça ne me dit pas si les caractères spéciaux dont je parles (à / é / è / ù / ç / etc.) sont censés appartenir à la plage [a-z] ou non, ni pourquoi en rajoutant apparemment n'importe lequel à la fin de mon expression elle se vérifie alors pour tous.
Mouais. Je suis pas vraiment convaincu. Ça ne dit pas vraiment si les caractères spéciaux sont bien exclus de la plage [a-z]. Les docs ne les mentionnent jamais et je ne sais pas trop si leur appartenance est implicite ou non.On voit bien içi: http://www.expreg.com/ancrages.php que non...
Oh, ce n'est pas vraiment le problème, en fait : peu importe la position du "à" dans l'expression, c'est plutôt sa présence ou non qui me pose quelques soucis ; je cherche juste à savoir si c'est normal d'avoir à mettre un caractère un peu au hasard pour faire reconnaître n'importe lequel d'une certaine plage, si par mesure de sécurité je devrais tous les préciser dans la regexp, etc.Essaye en passant le à avant le trait d'union dans ton masque
<?php
$masque = "^[A-Za-z' à-]+$";
$str = "toto' é";
if (ereg($masque,$str)) echo "Vrai";
else echo "Faux";
?>
Remplace la valeur de $str, ca fonctionne bien pour les chaines ayant "à" , mais ca fonctionne pas sur "besançon". Si par contre tu rajoutes "ç" dans le masque, ca fonctionne.Mmm... Personnellement, si je mets le "à" avant ou après le tiret, il n'y a aucune différence au niveau de mes tests (ce qui me semble logique étant donné que le caractère de rejet est le ^). Par contre, si je ne mets pas le "à" du tout (ou "é" ou autre), tous les caractères accentués sont rejetés.je crois que tu n'as pas compris ce que je veux dire. Il faut que ton "à" soit avant le "-", sinon tout ce qui ne contient pas "à" est vrai.
Enfin perso je viens de tester et ca marche tout a fait en faisant le masque comme ca : "^[A-Za-z' à-]+$"
Bizarre, ça ne semble pas marcher de la même façon de mon côté. Est-ce que ce serait ma config PHP en local qui pose problème ?Remplace la valeur de $str, ca fonctionne bien pour les chaines ayant "à" , mais ca fonctionne pas sur "besançon". Si par contre tu rajoutes "ç" dans le masque, ca fonctionne.
J'ai regardé, justement, et je crois bien que les résultats ne sont pas les mêmes chez moi.regarde l'url que j'ai mis plus haut...
Code : Tout sélectionner
function testenom($chaine){
if(ereg("^[A-Za-z' -]+$",$chaine)) return true;
else return false;
}