peterS.: Regex für css-color code

Beitrag lesen

gruss Danny,

ich hab ein Textfeld, in das man einen HTML color code eintragen kann.
Wenn da Unsinn drinsteht, erzeugt das einen Fehler, wenn man das als
CSS Eigenschaft übernimmt. Also wollte ich das gerne vorher verifizieren, ...

genau ein regulaerer ausdruck fuer alle zulaessigen css-farb-schemata -
   »rgb(255,255,255);«, »#ff00cc;« bzw. die ebenfalls moegliche kurzform
   »#f0c;« sowie der farbname selber - ist machbar, aber sehr komplex und
   im vorfeld seiner erstellung mit rechercheaufwand und schriftlicher
   fleissarbeit verbunden - lesbar ist das teil dann aber nicht mehr:

var regXValidCssValues = (/^\s*(?:(?:aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|activeborder|activecaption|appworkspace|background|buttonface|buttonhighlight|buttonshadow|buttontext|captiontext|graytext|highlight|highlighttext|inactiveborder|inactivecaption|inactivecaptiontext|infobackground|infotext|menu|menutext|scrollbar|threeddarkshadow|threedface|threedhighlight|threedlightshadow|threedshadow|window|windowframe|windowtext)|(?:#(?:[a-f]|[0-9]){3}(?:(?:[a-f]|[0-9]){3})?)|(?:rgb\(\s*([0-9]{1,3}\s*,\s*[0-9]{1,3}\s*,\s*[0-9]{1,3})\s*\)))\s*$/i);

geklaut hab ich den aus einem meiner alten testcases - dieser hat jetzt
   auch schon zwei jahre auf dem buckel:
   http://www.pseliger.de/jsExtendedApi/jsApi.DHTMLCssColor.dev.js

ACHTUNG, die dazugehoerige testumgebung produziert 34 alerts:
   http://www.pseliger.de/jsExtendedApi/jsApi.DHTMLCssColor.dev.html

viel spass - peterS. - pseliger@gmx.net

--
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]