Regular expression et accents [Fermé]

Signaler
-
 Bulle -
Bonjour à tous,

Voila quelques heures que je cherche une réponse au problème suivant :

J'ai une chaine de caractère dans un champ text d'une forme..
Pour vérifier si le champ est bien formaté j'utilise les regular expressions .. mais :

Le problème que j'ai est le suivant :

si le champs est un nom: il faut que je puisse accepter et controler l'utilisation des caractère accentués.

Exemple : Charliers Frédéric
Si j'utilise ^\s*[a-zA-Z]\s*$
Ben ca ne passe pas .. pour la simple raison que les caractère accentués ne sont pas acceptés.. je ne trouve pas la syntaxe pour corriger ca .. quelqu'un aurait une idée siouplait ??

Merci d'avance

4 réponses

Tu aurais pas oubliè les * pour dire qu'il peut y avoir plusieurs caractères ?
^\s*[a-zA-Z0-9_.]*+@[a-zA-Z0-9_-]*+\.\w{2,4}\s*$
8
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

non il parle d'accents (même si il a oublié les * c'est vrai ;) )
J4ai trouvé! c'est idiot ..

il suffit de mettre les caractères accentués dans les groupe

^\s*[a-zA-Zéèàê]+\s*$

Ca fonctionne bien .. par contre j'ai quelque chose d'encore plus curieux ..

^\s*[a-zA-Z0-9_.]+@[a-zA-Z0-9_-]+\.\w{2,4}\s*$

Quelqu'un peut-il m'expliquer pourquoi cette RE ne match pas une adresse email standard?

Je le mets dans une string en ajoutant les \ la ou il faut ...

"^\\s*[a-zA-Z0-9_.]+@[a-zA-Z0-9_-]+\\.\\w{2,4}\s*$"

le fais le match et ca ne marche pas! on dirait que le \\w{2,4}
ne passe pas .. mais pourquoi mystere ..

quelqu'un a une idée ?
C'est vieux mais je crois que tu avais oublié d'échapper le premier point.
C'est peut-être con ce que je vais dire, mais il n'y a pas que ces lettres, il y a auss ñ par ex, des caractères qui n'existe pas en français, mais qui devrait être viable
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
54
Beau déterrage de sujet !
Aller, moi aussi je déterre :3
\w ne contient pas les lettres accentués, donc é, è, ñ c'pas possible. Alors soit faut mettre toutes ces lettres, soit moi je bataille pas et j'utilise le point. Ou si y'a besoin, une "classe contraire" genre [!&%] (cad tout sauf les caractères "&" et "%")
Bref ^^
$chaine = preg_replace('#([^.a-z0-9àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+@+[^.a-z0-9àáâãäåçèéêëìíîïðòóôõöùúûüýÿ].[^.a-z0-9àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]{2})#i', '-', $chaine);

mieu beaucoup mieu :)
heu... Je ne sais pas pour vous mais... en principe les emails tout comme les nom de domaine n'accepte pas les accents... D'où l'inutilité de votre principe des accents pour les emails.
Faut, depuis quelques temps il est possible d'acheter des domaines avec des accents
Voici la solution javascript :
var rx = /^[\w\-\sàáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+$/i;

A+
ah j'oubliais pour les emails :
var rx = /^([\w\.-]+@[\w\.-]+\.[\w\s]+)$/i;