Page 1 sur 1
interdire caractères :)
Posté : 14 mai 2005, 18:27
par hrd
bonjour
j'ai fait un formulaire et j'aimerais pouvoir vérifier mes champs avec du javascript... quand je dis vérifier mes champs j'entends interdire certains caractères type (" ' / * etc )
j'ai regardé un peu du coté des expressions régulières mais c'est pas évident... ya t-il une autre façon de faire ? ou pourriez-vous m'éclaircir un peu plus sur ces fameuses expressions régulières ? merci !

Posté : 14 mai 2005, 18:42
par albat
Les expressions régulières sont une fonctionnalité très performantes du PHP.
L'inconvénient est que cela occasionne un appel au serveur donc un aller-retour sur le HTTP
tandis qu'un test en javascript se fait en local : donc plus rapide et moins lourd pour le serveur.
Je dois avoir quelque part un bout de javascript qui pourrait t'aider.
Je reviens...

Posté : 14 mai 2005, 18:52
par hrd
c'est cool albat merci j'attends

Posté : 14 mai 2005, 19:08
par pjl
mais le fait de vérifier avec un javascript ne dispense aucunement de vérifer en PHP si les données doivent être insérée dans une base de données.
Posté : 14 mai 2005, 19:15
par hrd
oui je me doute

au cas ou ... mais je vais finir de faire ma vérification en javascript dans un premier temps puis on verra par la suite avec un bout de code php

aucun probleme

Posté : 14 mai 2005, 19:31
par albat
Je ne l'ai pas retrouvé, mais de mémoire, c'était un truc comme ça.
Code : Tout sélectionner
rejet = false;
for (i=1 ; i<tonchamp.length ; i++)
if ((tonchamp.charAt(i)=="/") || (tonchamp.charAt(i)=="*"))
rejet=true;
if (rejet)
document.write('Caractère invalide')
else
formulaire.submit();
Posté : 14 mai 2005, 20:23
par hrd
oula c'est pas long de procéder comme ça albat ?
j'ai 10 champs à verifier ... je vois parfaitement le principe de l'algo mais bon...
Posté : 14 mai 2005, 22:49
par albat
C'est effectivement pas très élégant comme procédé,
parce que la fonction parcourt la chaîne entièrement, caractère par caractère,
alors qu'il suffit de détecter une seule occurrence pour rejeter la donnée saisie.
Posté : 14 mai 2005, 22:52
par albat
Ça, ça doit être un peu mieux...

Code : Tout sélectionner
if (tonchamp.indexOf("/")>0 || tonchamp.indexOf("*")>0)
document.write('Caractère invalide')
else
formulaire.submit();
Posté : 15 mai 2005, 10:31
par daoud
Salut,
on peut aussi faire ça avec une expression régulière :
Code : Tout sélectionner
var re = new RegExp("[\\\*\"\']", "g");
res = re.exec("ssssd*dldfs");
daoud
Posté : 15 mai 2005, 12:52
par hrd
oui c'est ce dont je parlais hier... je vais peut etre me tourner verx ça mais c'ets un peu plus complexe à comprendre je trouve.. j'ai lus des tuto mais c'est pas très clair :/ dans ma tête !
si vous en aviez un clair et concis je suis preneur
