Utilisation de eregi() pour détecter des caractères spéciaux [Résolu]

Signaler
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
-
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
-
Bonjour,

Je souhaite vérifier qu'une chaîne ne comporte de caractères spéciaux. Pour ce faire, j'utilise la fonction eregi.
Malheureusement, mon code ne fonctionne pas car je ne rentre jamais dans mon si...

Mon code :
if(eregi("[\^'$()*+<>?#"{}\\]™§®¡¨¯¢©°£ª±¤\“¹¥\”²¦¬³µ¼÷¶½Þ•¾ß¿×ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝàáâãäåæçèé&êëì&íîïðñòóôõöøùúûüýþÿ‰ƒ†‡ŠŒš",$NouveauMot1))
{
//$NouveauMot1 contient des caractères spéciaux
$test='bad8'
}

Quelqu'un peut-il m'expliquer pourquoi?

Merci d'avance

10 réponses

Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesud

Veuillez préférer les expressions régulières pour ce genre de traitement de chaine de type string ... Regardez sur http://www.expreg.com par exemple ...

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón

A grey suit is never so grey as on a sunny day ...
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
hello,



ben preg_match ferait tres bien l'affaire, avec le motif adequat.

Sinon il y a la solution du bourrin :

$carInterdits = array (tout ton bordel);

foreach ($carInterdits as $car) {

if (strpos ($taChaine, $car) === true) {

$test = 'bad8';

break;

}

}

ce qui en revient au meme que ton eregi() de toutes facons...et eregi peut prendre un motif (mais preg_match est plus rapide).
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Voilà la solution :


if(!preg_match('`^[[:alnum:]]*$`', $NouveauMot1))
{
[file://\\ La \\ La] chaine contient des caractères spéciaux
}
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Ce site est très interessant et il est vrai que les expressions régulières sont plus efficaces mais elles sont aussi moins souples à utiliser... J'ai passé en revue les fonctions et je ne vois pas comment faire pour résoudre mon problème : détecter la présence de caractères spéciaux dans une chaîne pouvant compter jusqu'à 20 caractères.

Quelqu'un a une idée? Merci d'avance
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Merci beaucoup pour cet aide.
Comme je veux faire les chose bien, je tente d'utiliser preg_match, mais j'ai un peu de mal avec la syntaxe...
Peut on se passer de spécifier la longueur mini et maxi ?

Voici mon code qui ne passe pas (message d'erreur : Warning: Unknown modifier '\') :

if (!preg_match("[]\^\'$()*+<>?#"{}\\™§®¡¨¯¢© £ª±¤\“¹¥\”²¦¬³µ¼÷¶½Þ•¾ß¿×ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝàáâãäåæçèé&êëì&íîïðñòóôõöøùúûüýþÿ‰ƒ†‡ŠŒš", $NouveauMot1)) $test='false';

Merci encore
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
HELP PLEASE...


J'ai beau essayer différentes fonctions, cette suite de caractères spéciaux ne passent pas...
Quelqu'un sait-il comment résoudre ce problème?

Merci d'avance
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesud



>> Eric25



On aurait pu l'un comme l'autre vous répondre directement, mais ce
n'est pas à mes yeux le but d'un forum d'entraide ... On vous a donné
des pistes pour résoudre votre problème ce qui vous a obligé à chercher
et surtout apprendre ... Car une heure après ( à peine cela c'est joué
à 10 secondes ;-) ) vous avez trouvé votre solution et en plus
maintenant vous connaissez les expressions régulières même si vous ne
les maitrisez pas ... C'est pourquoi je ne vous ai pas répondu à
19:01:38 ... Après il est vrai aussi qu'en fonction de la question de
notre disponibilité on donne les réponses immédiates ou pas ... ;-) Ce
ne fût pas votre cas mais vous en sortez gagnant à mon avis ... ;-)

Bon courage pour la suite ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón


A grey suit is never so grey as on a sunny day ...
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Bonjour,


No problem... Je comprends parfaitement et c'est totalement vrai. Mieux vaut apprendre en tatonnant que d'attendre que ca nous tombe tout cuit dans le beque et de ne rien comprendre à la chose...
Simplement, parfois, à force de ramer, on a des sérieuses courbatures mais mon site est enfin fini et j'en sais maintenant plus sur les expressions régulières...

Bonne continuation et merci
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesud



>> Malalam : il est vrai que cela est vraiment " bourrin " ;-)

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón



A grey suit is never so grey as on a sunny day ...
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesud



" Simplement, parfois, à force de ramer, on a des sérieuses
courbatures ... " C'est pourquoi on vous donne des pistes afin
d'alléger vos corbatures ... ;-) ...

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón




A grey suit is never so grey as on a sunny day ...