Expression rationnelle qui accepte les accents

psychoreflex
WRInaute passionné
WRInaute passionné
 
Messages: 1123
Inscription: 10 Juil 2005

Expression rationnelle qui accepte les accents

Message le Lun Avr 24, 2006 12:07

Bonjour,

J'utilise l'expression rationnelle suivante pour filtrer un formulaire :

Code: Tout sélectionner
if(ereg('^[a-zA-Z0-9]+$', $utilisateur))


Le problème c'est qu'elle bloque les accents.


Quelqu'un saurait-il faire accepter les accents à cette expression rationnelle, ainsi que le trait d'unition (-).

Merci d'avance

Tilt
WRInaute impliqué
WRInaute impliqué
 
Messages: 858
Inscription: 26 Mar 2005

Message le Lun Avr 24, 2006 12:27

as tu essayé avec [:alnum:] ?

psychoreflex
WRInaute passionné
WRInaute passionné
 
Messages: 1123
Inscription: 10 Juil 2005

Message le Lun Avr 24, 2006 12:30

Non c'est une idée, deux secondes.

**edit**

Je viens de tester cela :

Code: Tout sélectionner
if(!preg_match('`^([[:alnum:]]{4,8})$`',$passe))



Mais les accents ne passent pas non plus.


jeanluc
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: 3 Mai 2004

Message le Lun Avr 24, 2006 12:39

Bonjour,

Ce n'est peut-être pas top, mais ça devrait marcher:
Code: Tout sélectionner
if(ereg('^[a-zA-Z0-9éèêëïöôùç]+$', $utilisateur))

+ ceux que j'ai oublié... :wink:

Jean-Luc

psychoreflex
WRInaute passionné
WRInaute passionné
 
Messages: 1123
Inscription: 10 Juil 2005

Message le Lun Avr 24, 2006 12:43

Oui c'est assez sauvage, mais ça fonctionne et c'est le résultat qui compte. Bravo Jeanluc.

Une suggestion pour que l'expression accepte les espaces et le trait d'union ?

Tilt
WRInaute impliqué
WRInaute impliqué
 
Messages: 858
Inscription: 26 Mar 2005

Message le Lun Avr 24, 2006 12:43

peut être ça en iso-8859-1:
[^[:alnum:]À-ÖØ-öø-ÿ]

psychoreflex
WRInaute passionné
WRInaute passionné
 
Messages: 1123
Inscription: 10 Juil 2005

Message le Lun Avr 24, 2006 12:46

Elle me tente pas trop cette expression :-(

**edit**

Je vais essayer quand même pour te faire plaisir :wink:

Tilt
WRInaute impliqué
WRInaute impliqué
 
Messages: 858
Inscription: 26 Mar 2005

Message le Lun Avr 24, 2006 12:51

C'est vrai, comme disait le général De Gaulle,
"Les RegExp ont une sale tête en général."

Dire qu'il avait tout compris à l'avance. :roll:

psychoreflex
WRInaute passionné
WRInaute passionné
 
Messages: 1123
Inscription: 10 Juil 2005

Message le Lun Avr 24, 2006 12:51

Non Tilt, ton expression est bizarre :

Elle bloque les mot normaux sans accents ni rien, mais ceux-ci passent dès qu'ils comportent des caractères spéciaux.



Si vous savez comment faire accepter les espaces et les accents à l'expression régulière de Jeanluc...


jeanluc
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: 3 Mai 2004

Message le Lun Avr 24, 2006 12:58

Voilà, voilà... :D

Code: Tout sélectionner
if(ereg('^[a-zA-Z0-9éèêëïöôùç -]+$', $utilisateur))



Il faudrait aussi ajouter â, û,...

Jean-Luc

Tilt
WRInaute impliqué
WRInaute impliqué
 
Messages: 858
Inscription: 26 Mar 2005

Message le Lun Avr 24, 2006 13:03

cho
Dernière édition par Tilt le Lun Avr 24, 2006 13:14, édité 2 fois.

psychoreflex
WRInaute passionné
WRInaute passionné
 
Messages: 1123
Inscription: 10 Juil 2005

Message le Lun Avr 24, 2006 13:03

Bravo et merci Jeanluc, cela fonctionne !

Je pensais qu'avant un caractère spéciale comme le - (si c'est bien un caractère spécial), il fait utiliser le /.

Idem je n'aurais pas pensé qu'il suffisait de le signifier pour que l'espace soit pris en compte.



J'ai essayer cela pour l'apostrophe (au petit bonheur la chance hein) :

Code: Tout sélectionner
if(ereg('^[a-zA-Z0-9àáâãäåòóôõöøèéêëçìíîïùúûüÿñ -\']+$', $utilisateur))


Bein j'ai pas de chance à vus de nez.

psychoreflex
WRInaute passionné
WRInaute passionné
 
Messages: 1123
Inscription: 10 Juil 2005

Message le Lun Avr 24, 2006 13:11

Tilt a écrit:if (preg_match("/[[:alnum:]À-ÖØ-öø-ÿ]/",$texte))

Ca marche chez moi (espace,lettres,chiffres,lettres accentuées).
Le ^ était mal placé (il a un double sens: début de chaîne et condition négative 'if not')


Je viens de tester Tilt, mais si tu rajoutes par exemple ":", alors ça passe encore.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité