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 :

Remplacer les éléments d'un tableau par une seule valeur


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 14
    Points
    14
    Par défaut Remplacer les éléments d'un tableau par une seule valeur
    Bonjour,

    Après des recherches de fou sur Google, je n'arrive pas à trouver le moyen de remplacer les éléments d'un tableau par une seule et même valeur.

    Si je veux remplacer un mot, j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    text = "Salut tout le monde, comment ça va ?";
    text = text.replace("Salut", "Bonjour");
    Mais si je veux remplacer tous les éléments d'un tableau par une même valeur, je ne trouve pas. Par exemple, je voudrais aggrandir les smileys d'une chaine de caractère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tab = text.match(/\p{Emoji}+/gu); // je mets les smileys dans un tableau
    text = text.replace(tab, '<span style="font-size:30px">' + tab + '</span>'); // puis je les aggrandis
    j'ai aussi essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text = text.split(tab).join('<span style="font-size:30px">' + tab + '</span>');
    Mais dans les 2 cas, ça ne remplace qu'une fois (j'utilise keyup() avec jquery donc je vois en temps réel) et une fois que j'insère un nouvel emoji, une deuxième fois, non seulement ça ne fonctionne plus mais ça annule même le premier avec lequel ça avait fonctionné.

    Est-ce que quelqu'un aurait une piste s'il-vous-plait ?

    En vous remerciant.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 409
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 409
    Points : 15 778
    Points
    15 778
    Par défaut
    vous pouvez utiliser replaceAll pour remplacer toutes les occurrences :
    https://developer.mozilla.org/fr/doc...ing/replaceAll

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    J'ai oublié de préciser que j'ai aussi utilisé replaceAll et ça me donne exactement le même résultat.

    Et après plusieurs tests : si tous les emojis sont collés les uns aux autres, ça fonctionne mais si je mets ne serait-ce qu'un espace entre deux d'entre eux, plus rien, ça ne fonctionne plus.

    Et quand j'en mets 4 à la suite, ils sont tous contenus dans le même élement span. Alors que techniquement, ils devraient être contenus chacun dans des span différent, comme je voudrais :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <span style="font-size:30px">😀</span>
    <span style="font-size:30px">😄</span>
    <span style="font-size:30px">😆</span>

    Exemple :
    Si je mets ça : 😀😃😄😁😆, ça me donne <span style="font-size:30px">😀😃😄😁😆</span>.
    Si je mets ça : 😀😃😄😁 😆, ça me donne : 😀😃😄😁 😆

    Merci

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 132
    Points : 283
    Points
    283
    Par défaut
    Je n'ai pas bien compris si la donnée en entrée est un tableau, ou une chaîne de caractères ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ['😀','😃','😄','😁','😆'].map((emoji) => `<span style="font-size:30px">${emoji}</span>`).join('');
     
    // <span style="font-size:30px">😀</span><span style="font-size:30px">😃</span><span style="font-size:30px">😄</span><span style="font-size:30px">😁</span> <span style="font-size:30px">😆</span>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    '😀😃😄😁 😆'.replace(/\p{Emoji}/gu, (emoji) => `<span style="font-size:30px">${emoji}</span>`);
     
    // <span style="font-size:30px">😀</span><span style="font-size:30px">😃</span><span style="font-size:30px">😄</span><span style="font-size:30px">😁</span> <span style="font-size:30px">😆</span>

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    A la base, je voulais les mettre dans un tableau parce que je voyais pas trop comment faire autrement... Je débute en javascript... Mais votre 2ème code m'évite de faire comme ça.

    Merci beaucoup JérémieL !!! Ça marche nickel !! Merci, merci, merci !!!!

    Bonne journée !!

  6. #6
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 132
    Points : 283
    Points
    283
    Par défaut
    Pas de quoi, bonne journée.

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

Discussions similaires

  1. Remplacer du texte dans un tableau par une image
    Par vandman dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/06/2016, 15h05
  2. Réponses: 4
    Dernier message: 13/06/2016, 02h56
  3. Afficher les éléments d'un tableau dans une ArrayList
    Par AmeniESC dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 23/03/2012, 12h52
  4. Réponses: 3
    Dernier message: 02/06/2008, 16h37
  5. [C#] Remplacer les boutons d'un DataGrid par une image
    Par PascalL dans le forum Windows Forms
    Réponses: 17
    Dernier message: 04/04/2005, 16h07

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