|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Emmanuel Petit Inscription : novembre 2010 Messages : 11 ![]() |
Bonjour,
Pour valider une entrée, j'ai instruction suivante : Code :
if (preg_match('/^[a-zA-Z0-9 ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ€().,:\'-]{4,100}$/u',stripslashes($_POST['nomfr']))) { Sur les conseils de s.n.a.f.u., j'ai essayé de trouver le problème. Je me suis aperçu que le problème se produisait si il y avait une apostrophe dans le texte à vérifier. Par exemple : si on tape hopital, et on utilise le vérificateur d'orthographe du navigateur pour le changer en hôpital, l'entrée est validée. Si on tape l'hopital et on le corrige en l'hôpital, l'entré est invalidée. Après de nombreuses recheches, je me suis aperçu que l'apostrophe était changé par le vérificateur orthographique de ' en ´. Mais si je met le ´ dans mon regex, celà ne fonctionne pas. D'ailleurs en faisant str_split sur mon entrée, il décompose le caractères en 3, et ne montre pas de ´. Comment faire, pour que mon regex reconnaisse ce caractère? Merçi d'avance |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
il est souvent plus simple d'utiliser filter_var() et filter_input(), c'est pensé pour ça.
il est possible de faire les substitutions inverse avant ta regex. il est possible de vérifier que la chaine que tu reçois soit bien encodée en utf8 et pas en autrechose qui ne supporterai pas le caractère il est possible d'utiliser une classe "négative" qui refuse tous les caractères que tu voudras lister. http://php-regex.blogspot.com/ => any character except aAeEio or u
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Emmanuel Petit Inscription : novembre 2010 Messages : 11 ![]() |
J'ai utilisé un regex negatif, et celà fonctionne très bien. Merçi.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com