IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Prise en compte des accents dans un formulaire de contact


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    .....
    Inscrit en
    Juillet 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : .....

    Informations forums :
    Inscription : Juillet 2009
    Messages : 109
    Par défaut Prise en compte des accents dans un formulaire de contact
    Bonjour, bonsoir plutôt!

    J'ai créé un site internet sur lequel il y a un formulaire de contact.
    J'ai un soucis avec les champs qui m'interdisent les accents.
    J'ai retourné tout internet en vain, la seule chose que je sais c'est que mon problème vient de ce que l'on appel la regex?
    J'ai essayé des centaines de regex trouvé sur le net mais rien n'y fait ça veut pas.

    Pouvez vous m'aider svp?

    Voici des bouts de code:

    celui ci vient d'un fichier "TMForm.js" et c'est a la ligne 4 que j'ai essayé différents regex.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    regula.custom({
    	name:'JustLetters'
    	,validator:function(){
    		return /^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/.test(this.value)
    	}
    })
    regula.custom({
    	name:'JustNumbers'
    	,validator:function(){
    		return /^\+?(\d[\d\-\+\(\) ]{5,}\d$)/.test(this.value)
    	}
    })
    Celui ci vient de la page ou l'utilisateur renseigne le formulaire
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <form id="contact-form">
                                <div class="contact-form-loader"></div>
                                <fieldset>
                                    <label class="name">
                                        <input type="text" name="name" placeholder="Nom :*" value=""
                                               data-constraints="@Required @JustLetters"/>
                                        <span class="empty-message">*Complétez ce champ.</span>
                                        <span class="error-message">*Ce n est pas un nom valide.</span>
                                    </label>
     
                                    <label class="prename">
                                        <input type="text" name="prename" placeholder="Prénom :" value=""
                                               data-constraints="@JustLetters"/>
    				    <span class="empty-message">*Complétez ce champ.</span>
                                        <span class="error-message">*Ce n est pas un nom valide.</span>
                                    </label>								
     
                                    <label class="email">
                                        <input type="text" name="email" placeholder="Email :*" value=""
                                               data-constraints="@Required @Email"/>
                                        <span class="empty-message">*Complétez ce champ.</span>
                                        <span class="error-message">*Adresse invalide.</span>
                                    </label>
     
                                    <label class="phone">
                                        <input type="text" name="phone" placeholder="Téléphone :" value=""
                                               data-constraints="@JustNumbers"/>
                                        <span class="empty-message">*Complétez ce champ.</span>
                                        <span class="error-message">*Téléphone invalide.</span>
                                    </label>
                                    <label class="object">
                                       <input type="text" name="object" placeholder="Objet :*" value=""
                                               data-constraints="@Required @JustLetters"/>
                                        <span class="empty-message">*Complétez ce champ.</span>
                                        <span class="error-message">*Objet invalide.</span>
                                    </label>								
                                    <div class="clearfix"></div>
                                    <label class="message">
                                        <textarea name="message" placeholder="Message:"
                                                  data-constraints='@Required @Length(min=20,max=999999)'></textarea>
                                        <span class="empty-message">*Complétez ce champ.</span>
                                        <span class="error-message">*Le message est trop court.</span>
                                    </label>
                                    <div class="clearfix"></div>
    							<div class="btn-wrapper">
                                        <a class="btn" href="#" data-type="submit">Envoyer</a>
    				    <a class="btn __btn-white" href="#" data-type="reset" >Effacer</a> 
                                    </div>
                                </fieldset>
                                <div class="modal fade response-message">
                                    <div class="modal-dialog">
                                        <div class="modal-content">
                                            <div class="modal-header">
                                                <button type="button" class="close" data-dismiss="modal"
                                                        aria-hidden="true">&times;</button>
                                                <h4 class="modal-title">Modal title</h4>
                                            </div>
                                            <div class="modal-body">
                                                Votre message est envoyé! Nous allons y donner suite dans les meilleurs délais.
    											A bientôt.
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </form>

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    J'ai essayé des centaines de regex trouvé sur le net
    , comme tu as pu déjà t'en rendre compte, faire ça ne sert à rien (la plupart des regex trouvées en faisant ça sont soit pas exactement adaptées à ton problème, soit naïves, soit complètement fausses (et dans le pire des cas, elles peuvent être pas adaptées, complètement fausses, le tout masqué sous des atours super compliqués pour pas qu'on s'en rende compte).

    Le mieux dans ton cas consiste en plusieurs tâches, la première étant la plus longue, la plus difficile et la plus importante: délimiter ton besoin. En d'autre termes, quelles sont les chaînes que tu acceptes et que tu n'acceptes pas (avec force d'exemples et de précision) et pourquoi?
    Ensuite, le copier/coller n'étant pas l'ami du développeur, tourne toi vers un tutoriel sur les regex en javascript (car la syntaxe et les comportements peuvent varier selon les langages) afin de comprendre ce que tu fais et ce que tu lis. Aide toi des testeurs de regex en ligne pour javascript (il y en a plein) pour faire des essais.

    Une fois que tu auras fais ce travail (indispensable, sinon n'importe qui pourra te soumettre n'importe quoi qui marchouille, mais qui en fin de compte ne marche pas, sans que tu t'en rendes compte), poste tes exemples et tes essais et là, on pourra t'aider.

  3. #3
    Membre confirmé
    Homme Profil pro
    .....
    Inscrit en
    Juillet 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : .....

    Informations forums :
    Inscription : Juillet 2009
    Messages : 109
    Par défaut
    comme tu as pu déjà t'en rendre compte, faire ça ne sert à rien (la plupart des regex trouvées en faisant ça sont soit pas exactement adaptées à ton problème, soit naïves, soit complètement fausses (et dans le pire des cas, elles peuvent être pas adaptées, complètement fausses, le tout masqué sous des atours super compliqués pour pas qu'on s'en rende compte).
    Justement ce que je demande ça reste du standard, une regex sur un nom pour un formulaire.

    Le mieux dans ton cas consiste en plusieurs tâches, la première étant la plus longue, la plus difficile et la plus importante: délimiter ton besoin. En d'autre termes, quelles sont les chaînes que tu acceptes et que tu n'acceptes pas (avec force d'exemples et de précision) et pourquoi?
    Ensuite, le copier/coller n'étant pas l'ami du développeur, tourne toi vers un tutoriel sur les regex en javascript (car la syntaxe et les comportements peuvent varier selon les langages) afin de comprendre ce que tu fais et ce que tu lis. Aide toi des testeurs de regex en ligne pour javascript (il y en a plein) pour faire des essais.
    Pour le champ nom, je veux autoriser les lettres de a à z, de A à Z, les espaces, les lettres avec accents, le ' et le - sans retour à la ligne avec 2 caractères minimum.
    J'ai déjà essayé ça http://www.regextester.com/.

    Dans mon code de base j'ai /^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/
    Si je veut ajouter "é" j'ai juste à le rajouter comme ceci non? : /^[a-zA-Zé'][a-zA-Z-é' ]+[a-zA-Zé']?$/ alors pourquoi ça veut pas? Sachant que sur le testeur de regex en ligne ça réagit bien et dans mon code ça veut pas.

    Je ne connais rien en javascript et mon but n'est pas d’apprendre ce langage, le code c'est pas moi qui l'ai fait ça vient d'un kit graphique.

  4. #4
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Est ce qu'avec ta regex modifiée, le message: "*Ce n est pas un nom valide." apparaît lorsque tu ajoutes un "é" dans le champ "nom"?
    Il y a peut-être, voire sûrement une deuxième vérification coté serveur, regarde aussi dans le code serveur.

    (À noter qu'une telle pattern autorise des noms tel que: ' - ' -'', ce qui colle pourtant avec la description que tu en fais. Donc d'entrée de jeu, ton besoin est mal délimité.)

    Autre chose, place le tiret de préférence à la fin de la classe de caractère (ou au début, ou échappe le), étant donné que ce caractère est utilisé pour former un rang de caractères (comme pour A-Z), cela peut prêter à confusion.

Discussions similaires

  1. [2.x] Problème avec formulaire de contact dans le handler
    Par lapaupiette dans le forum Symfony
    Réponses: 2
    Dernier message: 16/04/2014, 10h01
  2. Problème de formulaire de contact
    Par aliaounnate dans le forum GTK+ avec PHP
    Réponses: 1
    Dernier message: 18/04/2013, 09h22
  3. Formulaire de contact
    Par meryem256 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 18/05/2009, 17h43
  4. problème d'accents dans le formulaire de contact
    Par Rocket666 dans le forum Langage
    Réponses: 2
    Dernier message: 06/02/2006, 14h38
  5. problème d'accents dans le formulaire de contact
    Par Rocket666 dans le forum Langage
    Réponses: 2
    Dernier message: 04/02/2006, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo