hallo Alle,
aus gegebenem anlass:
Ich würde gerne #ffc in HEXA umrechnen.
Gibt es entsprechende (Online-)Konverter?Was für ein Farbformat ist #ffc?
bin gerade mit meinem "style.cssText"-
farbkonvertierer fertig geworden - ja,
ich brauche so ein ding - wer so etwas
auch schon immer mal haben wollte - bitte:
//behandelt einen string so, als entspraeche dessen value der eigenschaft "style.cssText" eines beliebigen html-knotens und raeumt diesen erst einmal auf;
String.prototype.cssTextTrim = function() {return((this.replace(/\s*:\s*/g,":").replace(/\s*(\s*/g,"(").replace(/\s*)\s*/g,")").replace(/\s*,\s*/g,",").replace(/\s*;\s*/g,";").replace(/\s+/g," ").replace(/^\s/,"").replace(/\s$/,"").replace(/;+/g,";").replace(/^;/,"").replace(/;$/,"")+";").toLowerCase());};
String.prototype.getColorVersions = function() { // getColorMutations
/*
- erzeugt, wenn moeglich, 3 varianten von "cssText" sobald eine "#xxyyzz"- bzw. "rgb(aaa,bbb,ccc)"-anweisung in "cssText" gefunden wird;
- die varianten sind notwendig, um styles auch dann noch eindeutig identifizieren zu koennen, wenn diese z.b. durch den mozilla intern aus dem
hexadezimalen ":#xxyyzz"- in das dezimale "rgb(aaa,bbb,ccc)"-format umgerechnet, oder falls styles mit mischungen aus diesen beiden formaten
versehen wurden, oder aber wenn anwender die kurzschreibweise fuer das hexadezimale format beutzen - statt "#ffcc00" eben "#fc0";
- varianten:
rgb(255,204,0) - /rgb\s*(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*)/i - mit RegExp.$1,RegExp.$21,RegExp.$3;
#ffcc00 - /#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i - mit RegExp.$1,RegExp.$21,RegExp.$3;
#fc0 - /#([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})([;\s])/i - mit RegExp.$1,RegExp.$21,RegExp.$3,RegExp.$4;
- der rueckgabewert ist ein objekt mit den eigenschaften "rgb", "hex" und "half"; ("short" ist im javascript-sprachraum ein reserviertes wort)
*/
//alert("]" + cssText + "[");
var cssText = this.cssTextTrim(); // formatiert "style.cssText"-attribut-strings nach einem einheitlichen schema;
var versions = null;
if ((cssText.search(/rgb\s*(\s*[0-9]{1,3}\s*,\s*[0-9]{1,3}\s*,\s*[0-9]{1,3}\s*)/i) >= 0) || (cssText.search(/#[0-9a-f]{1}[0-9a-f]{1}[0-9a-f]{1}[;\s]/i) >= 0) || (cssText.search(/#[0-9a-f]{2}[0-9a-f]{2}[0-9a-f]{2}/i) >= 0)) {
var regX = null, regX_$1 = "", regX_$2 = "", regX_$3 = "", regX_$4 = "";
versions = {}; // alle moeglichen farbschemata:
versions.rgb = null; // - dezimale schreibweise mit "rgb"-praefix;
versions.hex = null; // - klassische hexadezimal-schreibweise;
versions.half = null; // - halbe hexadezimal-schreibweise;
// - als ausgangsbasis fuer cssText dient die dezimale schreibweise mit "rgb"-praefix;
// - diese grundlage muss unter umstaenden erst einmal geschaffen werden;
// - die 3 moeglichen varianten werden dann vom ur-style abgeleitet;
//alert("]" + cssText + "[");
regX = /#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i;
while (regX.test(cssText)) {
regX.exec(cssText);
regX_$1 = parseInt(RegExp.$1,16);
regX_$2 = parseInt(RegExp.$2,16);
regX_$3 = parseInt(RegExp.$3,16);
cssText = cssText.replace(regX,("rgb(" + regX_$1 + "," + regX_$2 + "," + regX_$3 + ")"));
}
regX = /#([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})([;\s])/i;
while (regX.test(cssText)) {
regX.exec(cssText);
regX_$1 = parseInt((RegExp.$1 + RegExp.$1),16);
regX_$2 = parseInt((RegExp.$2 + RegExp.$2),16);
regX_$3 = parseInt((RegExp.$3 + RegExp.$3),16);
regX_$4 = RegExp.$4;
cssText = cssText.replace(regX,("rgb(" + regX_$1 + "," + regX_$2 + "," + regX_$3 + ")" + regX_$4));
}
//alert("]" + cssText + "[");
versions.rgb = cssText; // "cssText"-basis !!
regX = /rgb\s*(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*)/i;
while (regX.test(cssText)) {
regX.exec(cssText);
regX_$1 = parseInt(RegExp.$1).toString(16);regX_$1 = ((regX_$1.length == 1) ? ("0" + regX_$1) : (regX_$1));
regX_$2 = parseInt(RegExp.$2).toString(16);regX_$2 = ((regX_$2.length == 1) ? ("0" + regX_$2) : (regX_$2));
regX_$3 = parseInt(RegExp.$3).toString(16);regX_$3 = ((regX_$3.length == 1) ? ("0" + regX_$3) : (regX_$3));
cssText = cssText.replace(regX,("#" + regX_$1 + regX_$2 + regX_$3));
}
//alert("]" + cssText + "[");
versions.hex = cssText;
cssText = versions.rgb;
while (regX.test(cssText)) {
regX.exec(cssText);
regX_$1 = parseInt(RegExp.$1).toString(16);regX_$1 = ((regX_$1.length == 1) ? ("0" + regX_$1) : (regX_$1));
regX_$2 = parseInt(RegExp.$2).toString(16);regX_$2 = ((regX_$2.length == 1) ? ("0" + regX_$2) : (regX_$2));
regX_$3 = parseInt(RegExp.$3).toString(16);regX_$3 = ((regX_$3.length == 1) ? ("0" + regX_$3) : (regX_$3));
if ((regX_$1.charAt(0) == regX_$1.charAt(1)) && (regX_$2.charAt(0) == regX_$2.charAt(1)) && (regX_$3.charAt(0) == regX_$3.charAt(1))) {
cssText = cssText.replace(regX,("#" + regX_$1.charAt(0) + regX_$2.charAt(0) + regX_$3.charAt(0)));
} else {
cssText = cssText.replace(regX,("#" + regX_$1 + regX_$2 + regX_$3));
}
}
//alert("]" + cssText + "[");
versions.half = cssText;
}
return versions;
};
var x = "border: 1px dotted #fc0 ; BACKGROUND-COLOR : RGB ( 30, 144 ,255 ); color : #f0e68c";
var y = x.getColorVersions();
if (y) {
alert("x = " + x + "\n\ny.rgb = " + y.rgb + "\n\ny.hex = " + y.hex + "\n\ny.half = " + y.half);
} else {
alert("x = " + x + "\n\ny = " + y);
}
x = "border: 1px dotted; padding: 2px 5px 3px 5px";
y = x.getColorVersions();
if (y) {
alert("x = " + x + "\n\ny.rgb = " + y.rgb + "\n\ny.hex = " + y.hex + "\n\ny.half = " + y.half);
} else {
alert("x = " + x + "\n\ny = " + y);
}
viel spass und by(t)e by(t)e - peterS. - pseliger@gmx.net
--
sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)