Php Expressions régulières

Psej -  
Pilow Messages postés 410 Statut Membre -
Bonjour,

Un petit problème dont je n'arrive pas à trouver la sortie
Je veux autoriser dans un champs de formulaire la saisie uniquement de lettres, chiffres, points, tirets et underscore

Je vérifie par le biais d'une expression régulière que voici

if(!preg_match("`^[a-zA-Z0-9\._-]+$`", $variable))
echo "Erreur";
else
echo "Ok";

Elle marche très bien et filtre tous les caractères indésirables sauf le & quand il est placé après un autre caractère autorisé.

Par exemple
&test -> Provoquera une erreur

Mais
test& -> Aucune erreur alors que le & ne doit pas passer

Je bloque. Merci de votre aide
A voir également:

1 réponse

Pilow Messages postés 410 Statut Membre 71
 
Bonjour

Si tu peux utiliser du javascript tu peux intercepter la touche via Onkeydown="tafonction()" et autoriser ou non l'affichage de cette touche
0