- REG_ERANGE: invalid caracters ??? [PHP] - PHP - Programmation
Marsh Posté le 16-06-2004 à 11:50:56
non le {3,} ca ve dire minimum 3 caractères et maxi illimité 
 
 
J'ai essayé sur une autre vérification: 
| Code : 
 | 
 
 
Et ca fonctionne sans problème. En faite c'est le ' qu'il n'aime pas. Je ne comprend pas car au-dessus ca fonctionne.
Marsh Posté le 16-06-2004 à 11:54:30
if(!ereg("^([\'-a-zA-Z]|[[:space:]]){3,}$", $NOM))  
 
et en l'echappant ?
Marsh Posté le 16-06-2004 à 12:05:20
if(!ereg("^(['-_0-9a-zA-Z]|[:space:]){3,}$", $DOMAINE))  
 
 
comme ca ?
Marsh Posté le 16-06-2004 à 12:08:07
['-a-zA-Z] 
 
Je vois le range '-a ! 
Je vois le range A-Z ! 
 
mais le range -z, c'est quoi ?  
 
Marsh Posté le 16-06-2004 à 12:09:57
| Mara's dad a écrit : ['-a-zA-Z]  | 
 
 
a mais uiiii biensûr    
  
 
  
  
 
j'ai corrigé un ereg y'a 2 jours pour la même erreur en plus ![[:kiki] [:kiki]](https://forum-images.hardware.fr/images/perso/kiki.gif)
Marsh Posté le 16-06-2004 à 16:13:37
| Mara's dad a écrit : ['-a-zA-Z]  | 
 
 
ben normalement c'est le caractère ' et ensuite un tiret et après l'alphabet en minuscule
Marsh Posté le 16-06-2004 à 17:01:25
Je vien de faire des modifications: 
| Code : 
 | 
 
 
Ca accept les lettres de l'alphabet en minuscule et majuscule, les espaces, les tirets et l'underscore. 
 
Maintenant j'aimerais autorisé le caractère '  
 
Je devrais faire comment ? 
 
sur expreg.com c'est pas très bien expliqué.
Marsh Posté le 16-06-2004 à 17:07:09
if(!ereg("^(['-_0-9a-zA-Z]|[[:space:]]){3,}$", $DOMAINE))  
 
devient 
 
if(!ereg("^([0-9a-zA-Z'_-]|[[:space:]]){3,}$", $DOMAINE))  
 
non ?
Marsh Posté le 16-06-2004 à 17:08:50
| simogeo a écrit : if(!ereg("^(['-_0-9a-zA-Z]|[[:space:]]){3,}$", $DOMAINE))   | 
 
 
Je vais tester cela. 
 
 
J'ai testé et ca ne fonctionne toujours pas.
Marsh Posté le 16-06-2004 à 17:13:39
lit ceci : 
http://www.php.net/manual/fr/pcre.pattern.syntax.php 
 
il y est expliqué que tu peux mettre un code hexa pour un caractère (paragraphe antislash) 
 
remplace donc ' par \x27
Marsh Posté le 16-06-2004 à 17:29:35
| T509 a écrit : lit ceci :  | 
 
 
pourtant, normalement le ' n'est pas reservé ? ![[:meganne] [:meganne]](https://forum-images.hardware.fr/images/perso/meganne.gif) 
 
 
 
Marsh Posté le 16-06-2004 à 17:29:46
J'ai fais comme cela: 
if(!ereg("^([_0-9a-zA-Z[:space:]]|\\-|\x27){3,}$", $NOM_ENT)) 
 
Ca ne fonctionne pas.
Marsh Posté le 16-06-2004 à 17:36:24
^([-_0-9a-zA-Z\x20\x27]{3,})$ 
je ne comprends pas pourquoi tu introduit des conditions avec | 
 
les (), c'est pour une séquence, les [] c'est pour une classe, {} se raporte à une classe et non pas à une séquence. 
Juste avant tu disais 
carcatères contenus dans _0-9a-zA-Z[:space:] 
ou bien le tiret 
ou bien le ' 
le tout sur 3 caractères mini 
 
Tu comprendra que bonjour'madame ne pourra pas fonctionner
Marsh Posté le 16-06-2004 à 17:39:34
ereg, c'est de la daube  
 
 
preg_match( "/^[0-9a-z_\\-\b\']{3,}$/i", "01-mmMP_'rt" ) -> 1
Marsh Posté le 16-06-2004 à 17:40:43
peut-etre que la syntaxe est bonne mais ne matche pas ce que tu souhaites réellement 
 
 
c'est pas ca que tu veux ? 
if(!ereg("^([0-9a-zA-Z\s'_-]){3,}$", $DOMAINE))  
Marsh Posté le 16-06-2004 à 17:41:51
peux tu nous expliquer ton motif ?
Marsh Posté le 16-06-2004 à 17:42:24
Faut que je me fasse une récapitulation: 
Admettons j'ai mon email: 
toto@titi.com 
 
Ma 1ère séquence sera toto ? la 2ème titi et la 3ème com ? 
Mais a quoi servent les classes ? 
 
Quel est réellement la différence entre classe et sequence ?
Marsh Posté le 16-06-2004 à 17:43:43
| T509 a écrit : peux tu nous expliquer ton motif ?  | 
 
 
+1 
 
mara's dad > dis lui pourquoi preg_match c'est mieux, sinon il a aucune raison de t'écouter  ( moi j'men fous je l'sais déjà
 ( moi j'men fous je l'sais déjà ![[:franck75] [:franck75]](https://forum-images.hardware.fr/images/perso/franck75.gif) 
  )
 )
Marsh Posté le 16-06-2004 à 17:46:20
J'ai appliqué ta solution, et cela ne fonctionne pas. 
 
| Code : 
 | 
 
 
que représente le x20 ?
Marsh Posté le 16-06-2004 à 17:50:26
http://www.php.net/manual/fr/ref.regex.php 
C'est presque écrit NOIR sur BLANC que les expression régulières compatibles Perl sont mieux  
 
Voir le commentaire de "mina86 at tlen dot pl" (deuxième commentaire) à propos de la vitesse d'execution re 
Marsh Posté le 16-06-2004 à 17:51:28
Bon, sinon AlphaZone, tu cherches à faire quoi exactement ?
Marsh Posté le 16-06-2004 à 17:52:40
\x20 représente l'espace, cf la table ascii 
un classe est un groupe de caractères authorisé, une séquence est un élément recherché 
 
exemple une adresse mail est composé de 3 séquences : utilisateur, domaine et extension 
tu peux faire correspondre chaque séquence à une classe ou alors la me^me classe pour toutes les séquences.
Marsh Posté le 16-06-2004 à 17:56:00
| Mara's dad a écrit : Bon, sinon AlphaZone, tu cherches à faire quoi exactement ?  | 
 
 
Je cherche a restreindre l'accès au caractères spéciaux. 
 
Plus précisement je cherche a autorisé les caractères normaux maj/minuscule ainsi que le tiret et l'underscore bien entendu l'espce et la strof ' doivent être compris dans cette autorisation. 
 
a->z OK 
A->Z OK 
' OK 
_ OK 
- OK 
<espace> OK 
 
le reste ERREUR
Marsh Posté le 16-06-2004 à 17:56:21
| T509 a écrit : \x20 représente l'espace, cf la table ascii  | 
 
 
merci de l'explication ca commence a devenir un peu plus clair 
 
 
Sur la soluce que tu ma donné auparavant, tout fonctionne SAUF ' 
Est-ce bien x27 pour ' ??
Marsh Posté le 16-06-2004 à 18:19:56
| AlphaZone a écrit : Je cherche a restreindre l'accès au caractères spéciaux.  | 
 
 
Ca j'avais compris, mais de temps en temps tu parles de NOM, d'autres fois de DOMAINE, et quelques-fois d'EMAIL. 
 
Donc il s'agit de valider une adresse email c'est bien ça ? 
 
Rqm, il ne me semble pas que l'espace et l'apostrophe soit autorisé dans une adresse email. En revanche pour le nom, le point l'est. 
 
Exemple : "/^[\w_.-]+@[\w_.-]+\\.[\w]+$/" avec preg_match of course !
Marsh Posté le 16-06-2004 à 18:20:02
vérifie sur la table ascii, mais oui je crois bien que le code hexa 27 correspond à '
Marsh Posté le 16-06-2004 à 18:27:01
| Mara's dad a écrit : Ca j'avais compris, mais de temps en temps tu parles de NOM, d'autres fois de DOMAINE, et quelques-fois d'EMAIL.  | 
 
 
Non c'est pas par rapport a une adresse email mais par rapport a un formulaire. 
Les variables ne sont pas importante dans mon problème. 
 
C'est ce fichu caractère ' qui m'aime pas.
Marsh Posté le 16-06-2004 à 18:31:03
peut être une solution : 
http://www.whisky.fr/index.php?par [...] er_by=prix 
  
  
 
Marsh Posté le 16-06-2004 à 18:46:18
moi je ne comprends pas à quoi sert le double \\ 
donc peut être qu'en faisant ceci : 
 ^([-_0-9a-zA-Z\\x20\\x27]{3,})$  
Marsh Posté le 16-06-2004 à 11:44:45
Bonjours à tous,
Voila j'ai un proglème avec ma fonction ereg().
Erreur:
Ligne concerné:
A tout hazard, vous ne savez pas d'où cela peut-il venir ?
Merci