JS色RGBと16進変換コア

1864 ワード

JavaScriptの色の変換の核心は進数間の転換です.RGBフォーマットは十進数表記法ですので、十六進色とRGB色の変換は十六進数と十進数の間の変換です.
16進数から10進数への変換は比較的容易で、コアコードは以下の例のようになっています.パーrseInt(「0 xFF」)の結果は255であり、「0 x」は現在16進数であることを示しています.パーrseIntの後ろにパラメータがないので、デフォルトでは10進数に変換されます.
十進数から16進数に変換します.コアコードは以下の通りです.var num=255;num.toString(16)その結果はFFです」16”は数値を16進数文字列に変換することを表します.
変換コードは、まずRGBの色を16進数に変換したものである.
String.prototype.colorHex = function(){
    var that = this;
    //             
    var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
    //    rgb    
    if (/^(rgb|RGB)/.test(that)) {
        var aColor = that.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(",");
        var strHex = "#";
        for (var i=0; i
16進数の色はRGB形式に変わります.
String.prototype.colorRgb = function(){
    var sColor = this.toLowerCase();
    //             
    var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
    //    16    
    if (sColor && reg.test(sColor)) {
        if (sColor.length === 4) {
            var sColorNew = "#";
            for (var i=1; i<4; i+=1) {
                sColorNew += sColor.slice(i, i+1).concat(sColor.slice(i, i+1));    
            }
            sColor = sColorNew;
        }
        //        
        var sColorChange = [];
        for (var i=1; i<7; i+=2) {
            sColorChange.push(parseInt("0x"+sColor.slice(i, i+2)));    
        }
        return "RGB(" + sColorChange.join(",") + ")";
    }
    return sColor;
};
使い方
var sRgb = "RGB(23, 245, 56)" , sHex = "#34538b";
var sHexColor = sRgb.colorHex();
var sRgbColor = sHex.colorRgb();