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 :

Comparer du texte et écrire dans un fichier html


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 18
    Points
    18
    Par défaut Comparer du texte et écrire dans un fichier html
    Bonjour,

    Je reçois régulièrement des mails au format html contenant du code sous la forme suivante :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <!-- debut1 -->
    texte1
    <!-- fin1 -->
     
    <!-- debut2-->
    texte2
    <!-- fin2 -->

    texte1 et texte2 sont donc situés entre deux zones de commentaires qui pourraient servir de tags

    Je souhaiterais pouvoir comparer texte1 et texte2.

    Si texte1 = texte2 : ne rien faire
    Si texte1 est différent de texte2, écrire (write) une * après texte2

    Je ne suis pas du tout expert en javascript.

    Mais je me demandais, si en utilisant ce langage, il était possible de réaliser l'action souhaitée.

    Merci par avance pour toute aide.

    Cordialement,

    Patrick

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 103
    Points : 115
    Points
    115
    Par défaut
    Salut,

    La comparaison de deux String est possible en Javascript. Il faudrait stocker les valeurs de tes textes dans des variables que tu compareras ensuite dans un if.
    Par exemple, de manière simplifiée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var txt1 = texte1;
    var txt2 = texte2;
    if (txt1 == txt2)
        alert("Les textes sont identiques.");
    else
        document.write(txt2 + "*");

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Merci pour la réponse rapide.

    Mais mon souci est de définir ce qu'est le texte1.
    Il faudrait trouver un moyen d'indiquer que la var txt1 est égale à la chaîne qui se trouve entre le commentaire debut1 et le commentaire fin1

    Merci encore pour toute aide.

    Patrick

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Regarde du coté innerHTML pour récupérer et écrire une portion de code dans ton html.

    A+.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 128
    Points : 210
    Points
    210
    Par défaut
    Et une bonne grosse expression régulière des familles pour le parser.

    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
    var txt = "<!-- debut1 -->\
    texte1\
    <!-- fin1 -->\
     \
    <!-- debut2-->\
    texte1\
    <!-- fin2 -->";
     
    var ex = /(<!--\s*debut(\d+)\s*-->\r?\n?)(.*?)(\r?\n?<!--\s*fin\2\s*-->\r?\n?\s*\r?\n?<!--\s*debut(\d+)\s*-->\r?\n?)(.*?)(\r?\n?<!--\s*fin\5\s*-->)/m;
    txt = txt.replace(ex, function(){
     
        if(arguments[3] === arguments[6]) arguments[6]+= '*';
        return arguments[1] + arguments[3] + arguments[4] + arguments[6] + arguments[7];
    });
    console.log(txt);

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Sincèrement, j'ai vraiment du mal à comprendre ce que tu souhaites faire
    Je reçois régulièrement des mails au format html
    Ton but, c'est quoi, de parser tes différents mails avec une fonction JavaScript ?
    Si c'est ça, tu peux oublier l'idée...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Merci à TheGwy pour la réponse détaillée que je vais tester.

    Bovino : désolé si ma demande n'était pas assez claire.
    Ce que je souhaite faire :
    - modifier le contenu des mails que je reçois

    Je reçois par mail des Bons de commande de clients.

    Ces mails de commande sont formatés d'origine de façon à ce que :
    - le texte1 représente l'adresse de livraison
    - le texte2 représente l'adresse de facturation

    Je souhaite pouvoir repérer très rapidement si ces deux adresses sont identiques ou différentes.

    Je peux agir en amont sur la matrice html qui sert à fabriquer ce mail, et y rajouter du javascript.
    Ainsi, par l'ajout de code javascript approprié, à réception du mail, une * aurait été ajoutée à la fin de l'adresse de facturation, uniquement si elle est différente de l'adresse de livraison.

    Merci encore une fois à chacun d'entre vous.

    Patrick

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 110
    Points : 44 908
    Points
    44 908
    Par défaut
    Bonjour,
    Je peux agir en amont sur la matrice html qui sert à fabriquer ce mail
    dans ce cas encapsules les adresses dans des SPAN, par exemple, et récupères les via un document.getElementById()
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <span id="adresse_livraison">...</span>
    <span id="adresse_facturation">...</span>

  9. #9
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    la solution la plus économique / rationnelle (?) serait de rendre le champ livraison optionnel, au moment de la saisie: si les 2 adresses sont identiques, il n'a pas à être renseigné...

Discussions similaires

  1. écrire dans un fichier HTML
    Par ballantine's dans le forum Langage
    Réponses: 15
    Dernier message: 23/11/2009, 13h51
  2. Réponses: 32
    Dernier message: 17/05/2006, 16h03
  3. [Delphi] Comment écrire dans un fichier texte ?
    Par Mickey.jet dans le forum Débuter
    Réponses: 2
    Dernier message: 01/04/2006, 14h00
  4. [DOS] Commande pour écrire dans un fichier texte
    Par Jeff87-01 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 28/03/2006, 01h04
  5. Réponses: 1
    Dernier message: 24/11/2004, 16h54

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