Ověřování názvů barev css

Napsal jsem plugin jQuery, který přijímá barvy css pro některé ze svých parametrů.

Chci je potvrdit. Pokud by to byla pouze hodnota hex nebo rgb, mohl bych to udělat s regulárním výrazem, ale jak ověřím všech 147 platných názvů barev, aniž bych plugin naplnil?

Zajímalo by mě, jestli existuje nějaký způsob, jak se pokusit použít styl (možná pomocí jquery) a pak zachytit chybu z prohlížeče, pokud není platný?

Edit:powtac a Pantelis přišli s řešením, ale oba minuli okrajové případy, takže zde uvádím úplné řešení:

var validateCssColour = function(colour){
    var rgb = $('<div style="color:#28e32a">');     // Use a non standard dummy colour to ease checking for edge cases
    var valid_rgb = "rgb(40, 227, 42)";
    rgb.css("color", colour);
    if(rgb.css('color') == valid_rgb && colour != ':#28e32a' && colour.replace(/ /g,"") != valid_rgb.replace(/ /g,""))
        return false;
    else
        return true;
};

Odpověď

Všechna řešení uvedená na této stránce jsou nesprávná, pokud má příslušný řetězec stejnou barvu jako testovací barva. Je pravda, že byste mohli použít velmi nepravděpodobnou volbu barvy, ale raději bych šel na 100% úspěšnost.

OP má ve svém kódu jeden překlep (viz podmínka s dvojtečkou) a netestuje „#28e32a“, takže tato barva selže a regulární výraz sbalí bílé znaky v barvě, takže „#28e 32a“ by (nesprávně ) projít.

V normálním JavaScriptu by to mělo mít 100% úspěšnost:

function validTextColour(stringToTest) {
    //Alter the following conditions according to your need.
    if (stringToTest === "") { return false; }
    if (stringToTest === "inherit") { return false; }
    if (stringToTest === "transparent") { return false; }

    var image = document.createElement("img");
    image.style.color = "rgb(0, 0, 0)";
    image.style.color = stringToTest;
    if (image.style.color !== "rgb(0, 0, 0)") { return true; }
    image.style.color = "rgb(255, 255, 255)";
    image.style.color = stringToTest;
    return image.style.color !== "rgb(255, 255, 255)";
}

JSFiddle:http://jsfiddle.net/WK_of_Angmar/xgA5C/