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 :

Conversion des couleurs RGB => Hexa dans textarea [RegExp]


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Conversion des couleurs RGB => Hexa dans textarea
    Bonjour,

    J'ai codé un script permettant de convertir des balises html en bbcode, le code html à convertir a cette forme :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <span style="color: rgb(102, 153, 153);" id="mess1">Je suis gentil</span><br><span style="color: rgb(153, 102, 153);" id="mess2">Non tu es méchant</span>

    Il ne m'est pas possible d'intervenir sur le contenu de l'attribut style (de changer le rgb en hexa, car cette couleur est changée par l'utilisateur via une palette de couleur, dans la palette c'est bien en hexadécimal mais dès que l'utilisateur choisi la couleur le script affecte la couleur via document.getElementById(monid).style.color = "#333333' (par exemple) et le navigateur convertit directement cette couleur en rgb dans le code source)

    Ce code là est donc traduis en bbcode, lorsque le script voit qu'il y a un style attaché avec une couleur la traduction donne :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [color=rgb(102, 153, 153)]Je suis gentil[/color]
    [color=rgb(153, 102, 153)]Non tu es méchant[/color]

    La ligne javascript utilisée pour traduire ça est la suivante :

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    text = text .replace(/<span style="color: ([\s\S]*?);">([\s\S]*?)<\/span>/gi, "[color=$1]$2[/color]");

    Mon problème étant que cette conversion (html => bbcode) est faite pour pouvoir affiché le texte html sur un forum utilisant le bbcode, et les couleurs RGB ne sont pas reconnues sur ces forum, il faudrait donc convertir la couleur RGB en hexadécimal, chose que je n'arrive pas à faire, j'ai bien essayé de récupérer les différents nombre de la couleur et de les envoyer dans une fonction convertissant le RGB en hexadécimal, mais ça ne marche pas :

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function rgb2hex(r,g,b) {
    	var hexVal = function(n) {
    		var data = "0123456789ABCDEF";
    		if (n==null) return "00";
    		n=parseInt(n); 
    		if (n==0 || isNaN(n)) return "00";
    		n=Math.round(Math.min(Math.max(0,n),255));
    		return data.charAt((n-n%16)/16) + data.charAt(n%16);
    	}
    	return hexVal(r)+hexVal(g)+hexVal(b);
    }
     
    text = text .replace(/<span style="color: rgb\(([\s\S]*?)\);">([\s\S]*?)<\/span>/gi, "[color=#]" + rgb2hex("$1","$2","$3") + "]$4[/color]");

    Si quelqu'un a une solution c'est avec plaisir...

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'ai finalement trouvé une solution,

    Il suffit de récupérer à l'aide d'un match toutes les couleurs dans un tableau (on supprima les doublons), puis de traiter chaque occurrence du tableau, de mettre dans une variable son équivalent hexadécimal et de faire un replace de la valeur du tableau (rgb) par son équivalent hexadécimal

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

Discussions similaires

  1. Utilisation des couleurs rgb() avec valeurs > 255
    Par dedeff dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 24/07/2014, 21h50
  2. Conversion couleur RGB en hexa
    Par konogan dans le forum Téléchargez
    Réponses: 0
    Dernier message: 04/10/2011, 13h41
  3. Réponses: 0
    Dernier message: 21/06/2010, 16h58
  4. Réponses: 0
    Dernier message: 03/10/2007, 13h11
  5. Liste des couleurs RGB?
    Par zorba49 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 06/12/2005, 15h20

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