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 :

Autoriser les espaces entre les mots d'une phrase : array, .replace()


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 253
    Points : 56
    Points
    56
    Par défaut Autoriser les espaces entre les mots d'une phrase : array, .replace()
    Bonjour,

    j'ai le code ci-dessous.
    Je voudrais permettre à mon code d'accepter les espaces entre les mots des phrases
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var gettxtsections = document.getElementById("sections-usml-img-square").innerHTML;
    var sectionssearch = {
              "anglais":"cours d\'anglais",
              "boxe":"Boxe Thaï - Kick Boxing - K1",
              "cycliste":"Cyclisme",
              "moderne":"Danse Classique - Modern Jazz - GRS"
    };
     
    var newtxt = gettxtsections.replace(/anglais|boxe|cycliste|moderne/g, function(matched){
      	return sectionssearch[matched];
    });
    document.getElementById("sections-usml-img-square").innerHTML = newtxt;
    Actuellement les espaces entre les mots "cours d'anglais", boxe et danse, fait buger la fonction (cad: les images ne s'affichent pas du fait de innerHTML.)
    "anglais":"cours d\'anglais",
    "boxe":"Boxe Thaï - Kick Boxing - K1",
    "cycliste":"Cyclisme",
    "moderne":"Danse Classique - Modern Jazz - GRS"

    J'ai testé avec .trim(), mais je ne sais pas à quel moment je dois l'intégrer ?

    pouvez-vous m'aider ?

  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 637
    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 637
    Points : 66 662
    Points
    66 662
    Billets dans le blog
    1
    Par défaut
    je ne vois pas le souci ...

    https://jsfiddle.net/bvu1e19z/
    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
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par artenis Voir le message
    [...]Actuellement les espaces entre les mots "cours d'anglais", boxe et danse, fait buger la fonction (cad: les images ne s'affichent pas du fait de innerHTML.)[...]
    Il faut changer uniquement les textes avec textContent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    const
    	elemSectionSquare = document.querySelector( "#sections-usml-img-square" ),
    	gettxtsections = elemSectionSquare.textContent,
    	sectionssearch = {
    		"anglais":"cours d\'anglais",
    		"boxe":"Boxe Thaï - Kick Boxing - K1",
    		"cycliste":"Cyclisme",
    		"moderne":"Danse Classique - Modern Jazz - GRS"
    	},
    	newtxt = gettxtsections.replace( /anglais|boxe|cycliste|moderne/g, function( matched ) {
    		return sectionssearch[ matched ];
    	});
     
    elemSectionSquare.textContent = newtxt;

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 253
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    je ne vois pas le souci ...

    https://jsfiddle.net/bvu1e19z/
    Edit:
    j'ai testé ceci sans résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://jsfiddle.net/Artenis/bvu1e19z/2/

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 253
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message
    Il faut changer uniquement les textes avec textContent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    const
    	elemSectionSquare = document.querySelector( "#sections-usml-img-square" ),
    	gettxtsections = elemSectionSquare.textContent,
    	sectionssearch = {
    		"anglais":"cours d\'anglais",
    		"boxe":"Boxe Thaï - Kick Boxing - K1",
    		"cycliste":"Cyclisme",
    		"moderne":"Danse Classique - Modern Jazz - GRS"
    	},
    	newtxt = gettxtsections.replace( /anglais|boxe|cycliste|moderne/g, function( matched ) {
    		return sectionssearch[ matched ];
    	});
     
    elemSectionSquare.textContent = newtxt;
    Merci DanielHagnoul,
    mais j'avais déjà testé avec textContent : le problème c'est que apparemment (sauf s'il y a une erreur autre part) en recuperant uniquement le texte avec TextContent et en réaffichant celui-ci avec TextContent, tout le contenu HTML disparaît à l'execution de la fonction. Je crois qu ele problème vient du fait que la div de récupération de contenu englobe trop d'éléments.
    J'avais testé en rajoutant à document.getElementById("sections-usml-img-square") -> .getElementsByClassName('title-sec'), mais je crois qu'il faudrait faire une boucle dessus, sinon ça ne marche pas !


    Voici la page en question en espérant que cela puisse vous permettre de mieux visualiser mon problème

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 253
    Points : 56
    Points
    56
    Par défaut
    Ma div "sections-usml-img-square" englobe trop d'éléments et prend en compte le texte à l'intérieur des attribut src.
    cad : les mots "anglais , boxe, etc" contenu dans les liens des images sont égalements remplacés.
    Je tente en vain d'exclure les attributs src à la suite de "QuerySelector" mais je patauge depuis 4 heures.
    J'ai testé avec Queryselectorall , mais apparement un script totalement différent doit être necessaire.

    J'ai testé avec le regex, sans résultat. Surtout j'ai beaucoup de mal à comprendre la syntaxe du regex.

    Ce qui est incompréhensible c'est que le texte "Cyclisme" et l'image pour le cycliste s'affiche correctement , alors que ça ne devrait pas ?

    Je suis complètement dans le noir , un peu d'aide s'il vous plait

Discussions similaires

  1. Gérer les espaces entre les mots
    Par kimikou dans le forum Langage
    Réponses: 6
    Dernier message: 12/07/2012, 12h48
  2. Réponses: 5
    Dernier message: 22/06/2011, 15h21
  3. Enlever les espaces entre les JLabel
    Par Freeluvs dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 25/02/2010, 19h50
  4. Réponses: 4
    Dernier message: 11/09/2007, 12h30
  5. Les DTD et les espaces entre cellules de tableaux
    Par YuGiOhJCJ dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 14/01/2006, 22h26

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