Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/12/2007, 16h45   #1
Invité de passage
 
Inscription : avril 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 8
Points : 1
Points : 1
Par défaut Expression validant un certains caractères dont les accents

Bonjour,

Voilà je suis vraiment pas à l'aise avec les expression régulière...

J'essaye juste de filtrer une chaine d'un formulaire :

Code :
1
2
3
4
 
$caractere_ok='/^[a-zA-Z0-9]*$/i';
$chaine="nom01.yu_re parés-dû (ok)";
if(!preg_match($caractere_ok,$chaine)) return "invalid";
J'aimerais que seul les minuscules (é à è ù ç etc... compris), les majuscules, les chiffres, les tirets, les parenthèses, les points, les underscore et les espace simples soient autorises.


Merci pour votre aide.
moi.mc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 16h59   #2
Membre actif
 
Inscription : janvier 2006
Messages : 149
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : janvier 2006
Messages : 149
Points : 186
Points : 186
Bonjour,

Je déteste les expressions régulières, mais à priori ça devrait ressembler à ça :
Code :
$caractere_ok='/^([-.\(\)_ a-zA-Z0-9]*)$/i';
Si ça ne fonctionne pas, regarde sur expreg.com pour créer ton motif correctement Le problème viendra sûrement de l'espace non échappé ou du point.
Vell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 17h08   #3
Invité de passage
 
Inscription : avril 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 8
Points : 1
Points : 1
Merci pour ton aide.

Ca à l'air de fonctionner correctement pour les espaces et les points.
C'est au niveau des é û etc... que ca ne passe pas...

je vais faire un tour sur expreg.com mais si quelqu'un sait, qu'il n'hesite pas ..

Merci en tous cas Vell
moi.mc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 18h06   #4
Membre actif
 
Inscription : janvier 2006
Messages : 149
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : janvier 2006
Messages : 149
Points : 186
Points : 186
Tu peux essayer avec [[:allnum:]]
Vell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 18h07   #5
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Code :
$caractere_ok = '~^[[:alnum:]()._ -]*$~';
Inutile de préciser l'option d'insensibilité à la casse (i) si vous précisez minuscules et majuscules dans votre expression La classe alnum vous permettra de gérer les caractères accentués/spéciaux si votre locale est correctement renseignée.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 18h10   #6
Membre actif
 
Inscription : janvier 2006
Messages : 149
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : janvier 2006
Messages : 149
Points : 186
Points : 186
Ah, tiens, à chaque fois je lui rajoute un L pour rien.
(enfin si, "all numeric" n'a pas la même définition que "alpha numeric")
Vell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 20h12   #7
Invité de passage
 
Inscription : avril 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 8
Points : 1
Points : 1
Citation:
Envoyé par julp Voir le message
Code :
$caractere_ok = '~^[[:alnum:]()._ -]*$~';
Inutile de préciser l'option d'insensibilité à la casse (i) si vous précisez minuscules et majuscules dans votre expression La classe alnum vous permettra de gérer les caractères accentués/spéciaux si votre locale est correctement renseignée.
Merci beaucoup pour ton aide !!!

Seulement, ca ne marche toujours pas, à priori cela concerne seulement les caracteres accentués.
Sais tu à quoi c'est du ?

Merci encore
moi.mc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 15h15   #8
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par julp
La classe alnum vous permettra de gérer les caractères accentués/spéciaux si votre locale est correctement renseignée.
Un problème de locale ? (sous Linux vous devriez avoir une valeur type fr_FR et sous windows c'est french d'après la documentation de PCRE).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 16h05   #9
Invité de passage
 
Inscription : avril 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 8
Points : 1
Points : 1
En effet, j'avais bien relevé ce point mais je ne savais de quoi tu parlais

Merci je vais jeter un coup d'œil sur tout ça.

moi.mc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 16h21   #10
Invité de passage
 
Inscription : avril 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 8
Points : 1
Points : 1
Me revoilà !

Je n'arrive pas à comprendre ce que c'est, a quoi ca sert et comment la configurer correctement....

Si quelqu'un à un peu de temps pour m'expliquer avec des mots simples

Merci !
moi.mc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 17h32   #11
Membre actif
 
Inscription : janvier 2006
Messages : 149
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : janvier 2006
Messages : 149
Points : 186
Points : 186
Le doc est claire pourtant

C'est ce qui définit les paramètres de localisation (monétaire, horaire, jeu de caractères, symboles monétaires, etc ...)

Si tu es sous linux, ça donnera ç : setlocale(LC_ALL , 'fr_FR');
Le LC_ALL est remplaçable suivant ce que tu veux définir en 'fr_FR' (uniquement la comparaison de caractère, uniquement les formats de dates / heure ... etc )

Et si tu es sous windows ça sera setlocale(LC_ALL , 'french');
Vell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 12h29   #12
Invité de passage
 
Inscription : avril 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 8
Points : 1
Points : 1
Merci pour ton explication...
Le problème c'est surtout que je ne sais pas trop où mettre le setlocal..

htacces. ? dans le fichier php direct (mais ca marche pas) ? dans un autre fichier de config ?

Merci
moi.mc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 13h55   #13
Membre actif
 
Inscription : janvier 2006
Messages : 149
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : janvier 2006
Messages : 149
Points : 186
Points : 186
Tu fais pas vraiment d'efforts didon ... Y'a des exemples dans la doc ...
Vell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 15h03   #14
Invité de passage
 
Inscription : avril 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 8
Points : 1
Points : 1
Citation:
Envoyé par Vell Voir le message
Tu fais pas vraiment d'efforts didon ... Y'a des exemples dans la doc ...
J'ai vraiment du mal
Promis, je trouve pas, pour moi faut le mettre dans le script avec le reste mais ca ne change rien à mon problème...

Désolé..
moi.mc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h36.


 
 
 
 
Partenaires

Hébergement Web