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 :

[decouverte] regex split différents resultats selon le browser


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Points : 773
    Points
    773
    Par défaut [decouverte] regex split différents resultats selon le browser
    Bonjour,


    Je viens peut-être de découvrir la lune, mais si ça peut servir à d'autres :

    Attention: L'interprétation de la fonction split est différente selon le navigateur client.

    Je ne sais pas si c'est la fonction elle-même qui serait buggée ou si les navigateurs incluent des prototypes différents de cette fonction.

    Un peu plus d'infos ici.

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Je reste perplexe ...

    dire que doit retourner un tableau à deux éléments ?
    le ^ et le \b ???
    The rules are complex and might seem almost arbitrary without close examination
    En effet

    Par contre sous IE il n'en trouve aucun ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert('ab'.split(/(?:ab)*/).length)
    FFX => 1
    IE => 0
    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 éclairé
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Points : 773
    Points
    773
    Par défaut ré-écriture proto split
    Oui effectivement, je me suis cantonné à regarder les couleurs sous les deux navigateurs FF et IE8 sans regarder le détail des résultats attendus, qui sont peut-être mal exprimés. Mais cela correspond quand même bien à une réalité.

    Pour ma part, je me suis rendu compte de ce problème avec mon propre code js (tu auras noté, je n'ai pas dit "mon code propre" ) testé ss FF et IE. IE ne me sortait pas les résultats Ajax alors que FF oui. Donc j'ai cherché, recherché, fouillé, farfouillé. Horreur malheur, le doute m'habite subitement : seraient-ce mes classes XML, serait-ce une boulette de logique, de syntaxe ... ??

    Bref rien de tout cela, la réalité est bien une interprétation différente de IE et FF avec les mêmes entrées dans le même code ... qui devrait sortir la même chose.

    Même avec des regex simples du type ci-dessous, IE8 et FF3.5 sortent des résultats différents à iso-entrée dans la boite :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var nodes = mes retours xml
    var pattern_spec = /^(.+)?:(.+)?:(.+)?$/;
    ...
    for (var i=0, c=nodes.length ; i < c; i++) {
       ligne_n = nodes[i].getAttribute("name");
       reg_result = ligne_n.split(pattern_spec);
       v1 = (undefined != reg_result[1])? reg_result[1] : "no data" ;
       v2 = (undefined != reg_result[2])? reg_result[2] : "no data" ;
       v3 = (undefined != reg_result[3])? reg_result[3] : "no data" ;
    }
    Je n'ai pas encore compris pourquoi. Notre ami grand-breton fournit également la ré-écriture de la fonction split, ce qui mérite notre attention je pense, avec en perspective :

    - comprendre pourquoi,
    - vérifier, tester
    - contrôler l'étendue selon les navigateurs et leur version
    - patcher

    Pour la part, n'étant pas du tout spécialiste même si je commence à comprendre ce que je fais, je vais commencer par la fin: patcher avec l'aide du MIT.

    Si les faits sont avérés, un petit article en vue serait de bon aloi comme aurait dit en son temps Maitre Capello.

  4. #4
    Membre éclairé
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Points : 773
    Points
    773
    Par défaut
    Et Ô miracle, le patch résout "mon" problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/12/2009, 14h27
  2. [RegEx] split en fonction des espace en excluant les portion entre quotes
    Par Invité dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 26/06/2009, 16h58
  3. Taille de tableau différent selon les browser
    Par sethnesta dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/05/2009, 14h50
  4. Réponses: 3
    Dernier message: 18/03/2009, 15h15
  5. Différents affichage selon l écran ?
    Par cdevl32 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 13/09/2007, 17h52

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