function hexToRgb(hex) { // '#'を取り除く hex = hex.replace(/^#/, ""); // 3桁の場合は6桁に拡張 if (hex.length === 3) { hex = hex.split('').map(char => char + char).join(''); } // 6桁の16進数表現を捕捉する正規表現 let result = /^([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); // 正規表現にマッチする場合、RGB値に変換 if (result) { return { r: parseInt(result[1], 16), // R要素を16進数から10進数に変換 g: parseInt(result[2], 16), // G要素を16進数から10進数に変換 b: parseInt(result[3], 16) // B要素を16進数から10進数に変換 }; } // 正規表現にマッチしない場合、nullを返す return null; } // 使用例 console.log(hexToRgb("#fff")); // { r: 255, g: 255, b: 255 } console.log(hexToRgb("#ffffff")); // { r: 255, g: 255, b: 255 }