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 :

echec et match [RegExp]


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Inscrit en
    Octobre 2007
    Messages
    209
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Par d�faut echec et match
    Bonjour,
    Un seul commentaire
    En xHTML la premi�re ligne de la page est ici :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    Car nous voulons suivre les standards - plus pour longtemps sans doute...
    Pour tester quelques champs avant de l'envoyer � PHP nous utilisons une v�rification via expression r�guli�re
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     this.ReReg['Nom'] = /^[ \-\w\x80-\xFF]+$/;
    this.ReReg['Prenom'] = /^[ \-\w\x80-\xFF]+$/;
    Figurez vous que :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    var valeur = 'Jean';
    return valeur.match(this.ReReg['Prenom']);
    Renvoie false
    Tout comme 'DR' mais pas 'BARDOL' (true) allez donc savoir pourquoi ?
    Merci de vos aides !

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    EN dehors du fais que je vois deux regexp identique, ce qui m'echappe...

    Je pense que vous ne r�initialisez le pointeur de la regexp entre deux tentatives de match.
    essayez de faire un match sur une chaine vide entre chaque match ...

    Sinon matchez sur la reg elle m�me:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    var valeur = 'Jean';
    return valeur.match(/^[ \-\w\x80-\xFF]+$/);

    Mais en tout �tat de cause dans l'optique de tester un pattern il vaut mieux utiliser test ...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    prenom="Jean"
    alert(/^[ \-\w\x80-\xFF]+$/.test(prenom))
    truc="DR"
    alert(/^[ \-\w\x80-\xFF]+$/.test(truc))
    machin="BARDOL"
    alert(/^[ \-\w\x80-\xFF]+$/.test(machin))
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  3. #3
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activit� : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par d�faut
    Salut,

    Juste pour r�agir sur le prologue XML...

    Ce dernier est :
    • facultatif pour les pages servies en "text/html".
      Le fichier sera toujours analys� comme un fichier HTML "classique".
      Mais IE bascule en quircks mode (mod�le de mise en page erron�).
    • obligatoire pour les pages servies en "application/xhtml+xml"
      Le fichier sera consid�r� comme un "vrai" fichier XML.
      IE (encore lui) ne les g�re m�me pas.

  4. #4
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    Quand je regarde les caract�res de \x80 � \xFF, je vois des trucs qui n'ont rien � faire dans un nom ou un pr�nom... Mais selon la sp�cif, JavaScript utilise ISO-8859-15 et pas ISO-8859-1, le probl�me est peut-�tre l�.

    Par contre quand la regexp n'a pas de flag g, la m�thode test() n'a pas d'effet de bord, on peut l'utiliser sans surprises. Et je conseille de n'avoir qu'une regexp et la r�utiliser, car derri�re toute instanciation de regexp il y a une compilation, potentiellement longue.

    Quant au standard... A l'heure actuelle, un prologue XML dans un document servi comme du HTML fait passer quelques navigateurs en mode quirks, quand d'autres plus anciens ne savent carr�ment pas le traiter. Il vaut mieux se contenter d'un bon vieux DOCTYPE.

    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

  5. #5
    Membre �clair�
    Inscrit en
    Octobre 2007
    Messages
    209
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Par d�faut
    Bonjour,
    Merci de tous ces conseils et propositions.
    Je m'att�le � modifier et am�liorer.
    Evidemment les deux patterns sont diff�rents dans le code, j'ai juste mal fait le copier coller dans le message
    J'esp�re que tout va vite rentrer dans l'ordre.
    Merci

  6. #6
    Membre �clair�
    Inscrit en
    Octobre 2007
    Messages
    209
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Par d�faut
    Voici le code de la m�thode qui v�rifie les champs :
    Code : 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
    onSoumet.prototype.lesReg = function(champ, valeur){
            this.ReReg['Cheque'] = /^[,0-9]+$/;
            this.ReReg['Titre'] = /^[^-][[:alpha:]-][^-]+$/;
            this.ReReg['Nom'] = /^[^-][[:alpha:]-][^-]+$/;
            this.ReReg['pre'] = /^[^-][[:alpha:]-][^-]+$/;
            this.ReREg['ad1'] = /^[^<>*]+$/;
            this.ReREg['ad2'] = /^[^<>*]+$/;
            this.ReREg['cp'] = /^[ 0-9\.]+$/;
            this.ReReg['Tel1'] = /^[ 0-9\.]+$/;
            this.ReReg['Tel2'] = /^[ 0-9\.]+$/;
            this.ReReg['Tel3'] = /^[ 0-9\.]+$/;
            this.ReReg['Port1'] = /^[ 0-9\.]+$/;
            this.ReReg['Fax'] = /^[ 0-9\.]+$/;
            this.ReReg['email1'] = /^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$/;
            this.ReReg['email2'] = /^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$/;
            return (this.ReReg[champ].test(valeur))
        };
    Et bien, firebugg signale
    this.ReREg is undefined this.ReREg['ad1'] = /^[^<>*]+$/; line148

    J'ai bien s�r effectu� le test de cette seule expression ailleurs et l� tout est Ok.
    Comprenez vous pourquoi ? Car moi :-/
    Merci

  7. #7
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    essaye d'echapper < ou > \< \>
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  8. #8
    Membre �clair�
    Inscrit en
    Octobre 2007
    Messages
    209
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Par d�faut
    H�las, m�me en �chappant, l'erreur survient.
    Vous arrive-t-il parfois de d�sesp�rer avec javascript et les diff�rents niveaux du DOM (+ diff�rences entre navigateurs) car ici
    Merci

  9. #9
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    le desespoir e la compatibilit� est sans fond ^^

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    var reg=  /^[^<>*]+$/;
    var chaine="mjmljmlkj"
    alert(reg.test(chaine))
    pas de souci avec �a chez moi ...
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  10. #10
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    et accessoirement
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  11. #11
    Membre �clair�
    Inscrit en
    Octobre 2007
    Messages
    209
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Par d�faut
    Ici aussi tout va bien dans le simple test :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    var reg=  /^[^<>*]+$/;
    var chaine="mjmljmlkj"
    alert(reg.test(chaine))
    C'est lorsque nous bouclons les champs
    Code : 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
    onSoumet.prototype.fpm = function(){
            var that = this;
            var validons = true;
            var tb = [];
            tb[0] = 'Titre'; tb[1]='Nom' ;tb[2]='pre' ; tb[3] = 'ad1';
            tb[4] = 'ad2'; tb[5] = 'cp'; tb[6]= 'Ville';
            tb[7]='Tel1' ; tb[8]='Tel2' ; tb[9]='Tel3' ; tb[10] = 'Fax';
            tb[11]= 'Port1'; tb[12]= 'Port2'; tb[13]= 'email1'; tb[14]='email2' ;
            for(var i=0; i<15; i++){
                var champ = document.getElementById(tb[i]);
                if(champ != null){
                    var item = document.getElementById(tb[i]).value;
                    if((item != null)&&(item.length > 1)){
                        if(! that.valide(tb[i], item)){
                            alert(that.leMessage);
                            validons = false;
                            i = 11;
                        }
                    }
                }
            }
            return validons;
        };
    Que pour
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    this.ReREg['ad1'] = /^[^<>*]+$/;
    l'erreur se produit.
    Si nous le faisons "� la main" champ par champ "tout baigne".
    Il y a vraiment une chose au moins qui m'�chappe compl�tement !

  12. #12
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    je r�p�te :


    ReREg != ReReg
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  13. #13
    Membre �clair�
    Inscrit en
    Octobre 2007
    Messages
    209
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Par d�faut




    MERCI !

  14. #14
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    R�gle num�ro 1 : plus une chose t'�chappe, plus elle est stupide. La solution c'est d'aller prendre un caf�.
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. La chasse aux bugs (jeu d'Echecs)
    Par Sub0 dans le forum D�veloppement 2D, 3D et Jeux
    R�ponses: 117
    Dernier message: 06/11/2008, 09h46
  2. [CR][VB.NET] Echec de connexion
    Par Shuret dans le forum SDK
    R�ponses: 5
    Dernier message: 15/09/2004, 10h46
  3. empecher win98 de booter en mode sans echec
    Par altahir007 dans le forum Windows
    R�ponses: 3
    Dernier message: 03/12/2003, 13h49
  4. "Match nul"
    Par Sylvain James dans le forum XML/XSL et SOAP
    R�ponses: 4
    Dernier message: 17/06/2003, 10h27
  5. template match="node() mais pas text()"
    Par Manu_Just dans le forum XSL/XSLT/XPATH
    R�ponses: 4
    Dernier message: 26/03/2003, 10h52

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